2009-10-22 81 views
2

我在項目中使用「Microsoft Word 12.0對象庫」從模板創建自動化文檔文檔,但速度慢得令人無法接受。我正在尋找替代品:我需要從模板創建文檔,運行一些宏,並將文本和表格插入各種書籤​​範圍(某些文本格式選項也不錯)。我只需要最後文件與Word2007中兼容,但傾向於容易從.NET的解決方案(其他建議是讚賞太)...用於自動化Microsoft Word 2007文檔創建的選項

請指教。

回答

2

看看微軟的Office OpenXML SDK。它允許您在沒有Office應用程序的情況下以編程方式創建Word 2007(.docx)文檔。

要使用它,您需要熟悉OpenXML文件格式。提供示例的一個很好的起點是Brian JonesErika Ehrli的博客。

CodeProject上的這個示例也可能是一個好的開始:Creation of a Word 2007 document using the Open XML Format SDK

我還建議您查看SDK中包含的工具DocumentReflector,該工具創建基於現有文檔生成特定Word文檔的代碼。

+0

此SDK是否包含在OpenXML文檔中處理/運行宏的選項?順便說一句:謝謝你的偉大答案。 – akosch 2009-10-22 15:16:43

+0

不,SDK只是在新的基於XML的文件格式的層面上工作。這意味着你將不得不在.NET中重寫你的宏代碼。 – 2009-10-22 15:39:00

+0

我可以在我新創建的文檔中保留模板中的宏嗎? – akosch 2009-10-22 16:08:25

2

選項,我以前到現在:

  1. 此致 - COM自動化:性能是不是最大的問題在這裏對我來說,只是 都像死的過程,鎖定的文件COM自動化的醜陋的細節, ...; 對於API存在的一些任務,只要有人使用該應用程序,其仍然是一個選項。 需要安裝Word。
  2. 導入爲HTML並保存爲Word - 只要您的文字格式簡單且匹配HTML標記結構 (例如標題,項目列表),就可以像預期的那樣快速且更好地工作, 。爲了簡化處理,模板必須是HTML,然後 對於有限的用例通常是一個快速入侵。 需要安裝Word。
  3. 保存爲WordML的連接和處理模板:可以節省您自動化的COM 的痛苦,但由於WordML只是一種被掩蓋爲XML的二進制格式,通常很痛苦;因此有些任務比使用Word-API更復雜。 儘管如此,我更喜歡它1. 不需要Word安裝。
  4. 和以前的回答一樣,OpenXML SDK:剛開始使用這個,似乎是一個很好的 妥協的1和3:在XML級別或API級別工作 - 任何適合 特定功能的最佳選擇。 不需要Word安裝。
0

其他建議是讚賞太

Java的等價物的OpenXML的SDK是docx4j(我的項目),和POI。

使用docx4j,您可以將宏注入到現有的docx中,或者從dotm中工作(如divo所示)。

0

Officewriter是另一種選擇。

的OfficeWriter API是一個.NET庫,允許你生成, 操作,並從自己的應用程序 讀取Excel和Word文檔。