用于自动创建Microsoft Word 2007文档的选项

时间:2009-10-22 14:41:45

标签: automation ms-word word-automation word-template

我在项目中使用“ Microsoft Word 12.0对象库”从模板自动生成word文档,但速度慢得令人无法接受。我正在寻找替代方案:我需要从模板创建文档,运行一些宏并将文本和表插入各种书签​​范围(一些文本格式化选项也会很好)。我只需要最终文档与 Word2007 兼容,但更喜欢从 .NET 轻松获得的解决方案(其他建议也很受欢迎)......

请告知。

4 个答案:

答案 0 :(得分:2)

看看微软的Office OpenXML SDK。它允许您以编程方式创建Word 2007(.docx)文档而无需Office应用程序。

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

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

我还建议您查看DocumentReflector,这是SDK中包含的工具,它创建代码以根据现有文档生成某个Word文档。

答案 1 :(得分: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级别上工作 - 无论什么最适合a 某些特征。 不需要Word安装。

答案 2 :(得分:0)

  

其他建议也很受欢迎

OpenXML SDK的Java等价物是docx4j(我的项目)和POI。

使用docx4j,您可以将宏注入现有的docx,或者使用dotm(如divo建议的那样)。

答案 3 :(得分:0)

Officewriter是另一种选择。

  

OfficeWriter API是一个允许您生成的.NET库,   操纵,并从您自己的文件中读取Excel和Word文档   应用