2009-10-22 82 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文档。