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

请指教。

有帮助吗?

解决方案

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

要使用它,您需要熟悉 OpenXML 文件格式。提供示例的一个很好的起点是以下博客: 布赖恩·琼斯埃里卡·埃尔利.

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

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

其他提示

选项,我到目前为止使用过:

  1. 您的 - COM 自动化:对我来说,性能不是最大的问题,只是com自动化的所有丑陋细节,例如死过程,锁定文件,...;对于某些API存在并且只有仅使用该应用程序的任务,它仍然是一个选择。需要安装Word。
  2. 作为html导入并保存为单词 - 只要您的单词格式很简单并且与HTML标记结构匹配,请按预期快速更好地工作(例如标题、项目列表)。为了简化处理,必须是html的模板,因此对于有限的用例,通常是快速入侵。需要安装Word。
  3. 连接并处理另存为 WordML 的模板:节省了COM自动化的痛苦,但是由于WordML只是XML掩盖的二进制格式,因此通常是一种痛苦。因此,有些任务比使用 Word-API 更复杂。尽管如此,我还是更喜欢它而不是1。不需要安装 Word。
  4. 正如之前的回答,OpenXML SDK:刚开始使用它,似乎是1和3的妥协:在XML级别或API级别上工作 - 任何最适合特定功能的方法。不需要安装 Word。

其他建议也很感激

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

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

办公室文员 是另一种选择。

Office Writer API是一个.NET库,可让您从自己的应用程序中生成,操纵和读取Excel和Word文档。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top