C#讀取Word學(xué)習(xí)經(jīng)驗總結(jié)
C#讀取Word學(xué)習(xí)經(jīng)驗總結(jié)向你介紹了C#讀取Word具體的從建立工程開始到邏輯分析***是代碼實現(xiàn)的步驟過程,希望對你了解和學(xué)習(xí)C#讀取Word有所幫助。
C#讀取Word1. 建立工程
在ASP.NET里操作Word的***步就是添加COM引用到你的工程里,通過右鍵點擊“解決方案資源管理器”的“引用”,添加引用。選擇COM選項卡,添加Microsoft Word 12.0 Object Library(其中12.0是Word版本號,根據(jù)當(dāng)前電腦上安裝的Word版本確定)。 ASP.Net會自動生成Word的COM包裝類程序集添加到應(yīng)用程序目錄里。
C#讀取Word2. 代碼邏輯
在服務(wù)器端訪問本地存在的Word文件,并根據(jù)他新建一個文件,利用Word的標(biāo)簽定位賦值??蛻舳藶g覽器通過文件鏈接訪問到這個新生成的Word文件。具體代碼如下:
- private void Page_Load(object sender, System.EventArgs e)
- {
- // 在此處放置用戶代碼以初始化頁面
- object Missing = Type.Missing;
- //取得Word文件路徑
- string strTemp = "doc/test.doc";
- //新Word文件保存路徑
- string newFileName = "doc/test2.doc";
- //創(chuàng)建一個名為WordApp的組件對象
- Application WordApp = new ApplicationClass();
- //必須設(shè)置為不可見
- WordApp.Visible = false;
- try
- {
- //創(chuàng)建以strTemp為模板的文檔
- object oTemplate = Server.MapPath(strTemp);
- Document WordDoc = WordApp.Documents.Add(ref oTemplate, ref
- Missing,ref Missing, ref Missing);
- WordDoc.Activate();
- //對標(biāo)簽"Title"進行填充
- string strBM = "Title";
- object objBM = strBM;
- if(WordApp.ActiveDocument.Bookmarks.Exists(strBM) == true)
- {
- WordApp.ActiveDocument.Bookmarks.get_Item(ref objBM).Select();
- WordApp.Selection.TypeText("公文標(biāo)題");
- }
- //保存為新文件
- object oNewFileName = Server.MapPath(newFileName);
- WordDoc.SaveAs(ref oNewFileName, ref Missing,ref Missing, ref
- Missing,ref Missing,ref Missing,ref Missing,
- ref Missing,ref Missing,ref Missing, ref Missing, ref Missing, ref
- Missing, ref Missing, ref Missing, ref Missing);
- WordDoc.Close(ref Missing, ref Missing, ref Missing);
- WordApp.Quit(ref Missing, ref Missing, ref Missing);
- }
- catch(Exception Ex)
- {
- throw new Exception(Ex.Message);
- }
- //瀏覽器彈出下載框﹥
- Page.RegisterStartupScript("", "﹤script﹥window.open('"+newFileName+"')
- ﹤/script﹥");
- }
運行前,工程目錄下建文件夾doc, doc里新建一個test.doc,內(nèi)容自己定,手動插入一個名為“Title”的標(biāo)簽。此代碼在VS.Net2003+WinXP+Office2007 下運行通過。
C#讀取Word時遇到的問題:
如果你在運行時出現(xiàn)下面的調(diào)試錯誤:
- 拒絕訪問
說明: 執(zhí)行當(dāng)前 Web 請求期間,出現(xiàn)未處理的異常。請檢查堆棧跟蹤信息,以了解有關(guān)該錯誤以及代碼中導(dǎo)致錯誤的出處的詳細信息。
異常詳細信息: System.UnauthorizedAccessException: 拒絕訪問。
ASP.NET 未被授權(quán)訪問所請求的資源。請考慮授予 ASP.NET 請求標(biāo)識訪問此資源的權(quán)限。ASP.NET 有一個在應(yīng)用程序沒有模擬時使用的基進程標(biāo)識(通常,在 IIS 5 上為 {MACHINE}\ASPNET,在 IIS 6 上為網(wǎng)絡(luò)服務(wù))。如果應(yīng)用程序正在通過 ﹤identity impersonate="true"/﹥ 模擬,則標(biāo)識將為匿名用戶(通常為 IUSR_MACHINENAME)或經(jīng)過身份驗證的請求用戶。 若要授予 ASP.NET 對文件的寫訪問權(quán),請在資源管理器中右擊該文件,選擇“屬性”,然后選擇“安全”選項卡。單擊“添加”添加適當(dāng)?shù)挠脩艋蚪M。突出顯示 ASP.NET 帳戶,選中所需訪問權(quán)限對應(yīng)的框。
出現(xiàn)以上錯誤時,表明ASP.NET進程無法對具有用戶界面的Word進行自動化調(diào)用,必須由一個擁有桌面的用戶角色來啟動ASP.NET進程。
解決方法:在Web.config文件的System.Web節(jié)里添加
- ﹤identity impersonate="true" userName="*" password="*" /﹥
其中userName和password是你電腦里的Windows登錄賬戶。
C#讀取Word的基本內(nèi)容就向你介紹到這里,希望那個對你了解和學(xué)習(xí)C#讀取Word有所幫助。
【編輯推薦】
- C#項目代碼規(guī)范詳解
- C#項目初期準(zhǔn)備工作淺析
- C#項目的創(chuàng)建過程詳解
- 詳解C#讀取word內(nèi)容操作
- C#讀取Word文件實例詳解