【问题标题】:Options for automating Microsoft Word 2007 document creation [closed]用于自动创建 Microsoft Word 2007 文档的选项 [关闭]
【发布时间】:2009-10-22 14:41:45
【问题描述】:

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

请指教。

【问题讨论】:

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


    【解决方案1】:

    看看微软的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 文档。

    【讨论】:

    • 此 SDK 是否包含用于在 OpenXML 文档中处理/运行宏的选项?顺便说一句:感谢您的出色回答。
    • 不,SDK 仅在新的基于 XML 的文件格式级别上工作。这意味着您必须在 .NET 中重写宏代码。
    • 我可以在新创建的文档中保留模板中的宏吗?
    • 是的,如果您的模板是 .docm/.dotm 格式,这是可能的。您将基本上复制模板,然后使用 SDK 打开副本并填充内容。
    【解决方案2】:

    选项,我用到现在:

    1. 您的 - COM 自动化:性能对我来说不是最大的问题, 只是 COM 自动化的所有丑陋细节,如死进程、锁定文件……; 对于某些存在 API 且只有人使用该应用程序的任务, 它仍然是一种选择。 需要安装 Word。
    2. 以 HTML 格式导入并另存为 Word - 工作速度更快,效果更好, 只要您的文字格式简单且与 HTML 标记结构匹配得很好 (例如标题、项目列表)。为了简化处理,模板必须是 HTML, 所以通常是针对有限用例的快速破解。 需要安装 Word。
    3. 连接和处理保存为 WordML 的模板:为您省去 COM 的痛苦 自动化,但由于 WordML 只是一种伪装成 XML 的二进制格式,因此通常很痛苦; 因此有些任务比使用 Word-API 更复杂。 不过我更喜欢它而不是1。 不需要安装 Word。
    4. 和之前的回答一样,OpenXML SDK: just started to use this, 好像不错 1 和 3 的折衷:在 XML 级别或 API 级别上工作 - 最适合 一定的特点。 不需要安装 Word。

    【讨论】:

      【解决方案3】:

      其他建议也值得赞赏

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

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

      【讨论】:

        【解决方案4】:

        Officewriter 是另一种选择。

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-04-27
          • 2010-09-10
          • 2014-03-04
          • 1970-01-01
          • 2022-08-08
          • 1970-01-01
          相关资源
          最近更新 更多