2

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

请指教。

4

4 回答 4

2

看看微软的Office OpenXML SDK。它允许您在没有 Office 应用程序的情况下以编程方式创建 Word 2007 (.docx) 文档。

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

CodeProject 上的这个示例也可能是一个好的开始:使用 Open XML 格式 SDK 创建 Word 2007 文档

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

于 2009-10-22T14:47:05.680 回答
2

选项,我使用到现在:

  1. 你的 - COM 自动化:对我来说,性能并不是最大的问题,只是 COM 自动化的所有丑陋细节,如死进程、锁定文件……;对于一些存在 API 的任务并且只要只有人使用该应用程序,它仍然是一种选择。需要安装Word。
  2. 导入为 HTML 并另存为 Word - 只要您的 word 格式简单并且与 HTML 标记结构(例如标题、项目列表)非常匹配,就可以按预期快速和更好地工作。为了简化处理,模板必须是 HTML,因此通常是针对有限用例的快速破解。需要安装Word。
  3. 连接并处理保存为 WordML 的模板:为您省去 COM 自动化的痛苦,但由于 WordML 只是一种伪装成 XML 的二进制格式,因此通常很痛苦;因此有些任务比使用 Word-API 更复杂。不过我更喜欢它而不是 1. 不需要安装 Word。
  4. 与之前的答案一样,OpenXML SDK:刚刚开始使用它,似乎是 1 和 3 的一个很好的折衷方案:在 XML 级别或 API 级别上工作——无论哪种方式最适合某个功能。不需要安装 Word。
于 2009-10-22T15:13:35.483 回答
0

其他建议也值得赞赏

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

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

于 2009-10-30T22:49:15.227 回答
0

Officewriter是另一种选择。

OfficeWriter API 是一个 .NET 库,允许您从自己的应用程序生成、操作和读取 Excel 和 Word 文档。

于 2012-02-04T16:22:40.903 回答