C#中操作Word文檔

今天,在用c#語言開發一個word報表,在網上看到一些有用的文章,先轉帖過來,自己屯着。
以下來自
http://hi.baidu.com/showlong/blog/item/2198fdfab75a35d4b48f31c0.html  

參考:http://xb.hzu.edu.cn/qikan/manage/wenzhang/200906014.pdf

      http://kb.cnblogs.com/a/1698486/  
在當前項目開發過程中,客戶有根據數據庫數據生成WORD文檔的需求,在和 同事溝通的過程中,找到了兩個解決方案

1.先通過程序生成報表樣式的HTML頁面,然後修改HTML頁面的後綴名爲DOC。
2.定製WORD文檔的模板文件,在C#中操作WORD模板,生成新的WORD文檔。
第一方案簡單,只需要改動文件的擴展名就行了,但是也存在了一些問題,譬如生成的WORD文檔樣式的丟失。這樣對於客戶來說可能是一個無法通過的方案。第 二方案比較複雜,需要調用OFFICE的WORD組件通過C#來操作WORD,進而生成WORD。此方法類似於我們在c#中的後臺拼接數據。雖然麻煩,但 是能夠靈活定製,只不過是操作WORD對象而已。
經過再三考慮:決定用第二種方法來生成WORD報告文檔。
通過自己的實踐,這個需求總算是搞定了,在實際開發的過程中,遇到了這樣那樣的問題,還好,通過不斷的查找網絡資源,結合實際開發中的情況,問題都得到了 解決。現將本人在開發過程中的一些理解與經驗總結一下:
在VS2008平臺下,引用.net-Microsoft.Office.Interop.Word.12,這樣就可以在程序用操作WORD對象了。
通過簡單執行,報了80070005錯誤,這個錯誤是因爲權限不夠,需要在DCOM配置中更改.net和IIS用戶的操作權限,具體修改過程如下: 解決方法一:
1.控制面板-》管理工具-》組件服務-》計算機-》我的電腦-》DCom配置-》找到Microsoft Word文檔之後,單擊屬性打開此應 用程序的屬性對話框。
2.單擊標識選項卡,然後選擇交互式用戶。
3.單擊"安全"選項卡,分別在"啓動和激活權限"和"訪問權限"組中選中"自定義",然後自定義->編輯->添加ASP.NET賬戶和 IUSER_計算機 名。
4. 確保允許每個用戶訪問,然後單擊確定。
5. 單擊確定關閉 DCOMCNFG。
如果上述方法不能解決問題,就應該是權限問題,請嘗試用下面的方法:
在web.config中使用身份模擬,在<system.web>節中加入 <identity impersonate="true" userName="你的用戶名 " password="密碼 "/>
</system.web>
解決了上述問題,開始考慮如何創建WORD模板文件,WORD的模板文件其實就是通過書籤來添加內容的。也就是通過在WORD文檔中創建書籤,然後在程序 中獲取模板文件的所有書籤,通過給書籤賦值來進行文檔生成的。
在程序中的操作流程如下:
聲明WORD程序的對象 → 聲明一個WORD文檔對象 → 獲取當前的操作文檔對象 → 獲取文檔所有的書籤 → 將數據庫數據賦值到對應的書籤 → 將文檔另存爲指定的文件夾下.
下面將針對農業植物測試報告來分析具體的代碼實現:

   

發佈了8 篇原創文章 · 獲贊 1 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章