溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何利用C#讀取Word

發(fā)布時(shí)間:2021-06-16 14:28:42 來(lái)源:億速云 閱讀:261 作者:chen 欄目:編程語(yǔ)言

本篇內(nèi)容主要講解“如何利用C#讀取Word”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“如何利用C#讀取Word”吧!

C#讀取Word1. 建立工程

在ASP.NET里操作Word的***步就是添加COM引用到你的工程里,通過(guò)右鍵點(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ù)器端訪問(wèn)本地存在的Word文件,并根據(jù)他新建一個(gè)文件,利用Word的標(biāo)簽定位賦值??蛻舳藶g覽器通過(guò)文件鏈接訪問(wèn)到這個(gè)新生成的Word文件。具體代碼如下:

private void Page_Load(object sender, System.EventArgs e)  {  // 在此處放置用戶代碼以初始化頁(yè)面  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è)置為不可見(jiàn)  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)行通過(guò)。

C#讀取Word時(shí)遇到的問(wèn)題:

如果你在運(yùn)行時(shí)出現(xiàn)下面的調(diào)試錯(cuò)誤:

拒絕訪問(wèn)

說(shuō)明: 執(zhí)行當(dāng)前 Web 請(qǐng)求期間,出現(xiàn)未處理的異常。請(qǐng)檢查堆棧跟蹤信息,以了解有關(guān)該錯(cuò)誤以及代碼中導(dǎo)致錯(cuò)誤的出處的詳細(xì)信息。
 
異常詳細(xì)信息: System.UnauthorizedAccessException: 拒絕訪問(wèn)。

ASP.NET 未被授權(quán)訪問(wèn)所請(qǐng)求的資源。請(qǐng)考慮授予 ASP.NET 請(qǐng)求標(biāo)識(shí)訪問(wèn)此資源的權(quán)限。ASP.NET 有一個(gè)在應(yīng)用程序沒(méi)有模擬時(shí)使用的基進(jìn)程標(biāo)識(shí)(通常,在 IIS 5 上為 {MACHINE}\ASPNET,在 IIS 6 上為網(wǎng)絡(luò)服務(wù))。如果應(yīng)用程序正在通過(guò) ﹤identity impersonate="true"/﹥ 模擬,則標(biāo)識(shí)將為匿名用戶(通常為 IUSR_MACHINENAME)或經(jīng)過(guò)身份驗(yàn)證的請(qǐng)求用戶。 若要授予 ASP.NET 對(duì)文件的寫訪問(wèn)權(quán),請(qǐng)?jiān)谫Y源管理器中右擊該文件,選擇“屬性”,然后選擇“安全”選項(xiàng)卡。單擊“添加”添加適當(dāng)?shù)挠脩艋蚪M。突出顯示 ASP.NET 帳戶,選中所需訪問(wèn)權(quán)限對(duì)應(yīng)的框。

出現(xiàn)以上錯(cuò)誤時(shí),表明ASP.NET進(jìn)程無(wú)法對(duì)具有用戶界面的Word進(jìn)行自動(dòng)化調(diào)用,必須由一個(gè)擁有桌面的用戶角色來(lái)啟動(dòng)ASP.NET進(jìn)程。

解決方法:在Web.config文件的System.Web節(jié)里添加

﹤identity impersonate="true" userName="*" password="*" /﹥

其中userName和password是你電腦里的Windows登錄賬戶。

到此,相信大家對(duì)“如何利用C#讀取Word”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI