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


















