【问题标题】:How can I create a Word document using Python? [closed]如何使用 Python 创建 Word 文档? [关闭]
【发布时间】:2010-11-05 07:57:21
【问题描述】:

我想使用 Python 创建一个 Word 文档,但是,我想尽可能多地重复使用我现有的文档创建代码。我目前正在使用 XSLT 生成一个我 programatically convert 到 PDF 文件的 HTML 文件。但是,我的客户现在要求以 Word (.doc) 格式提供相同的文档。

到目前为止,我还没有找到任何解决此问题的方法。是否有人知道可能有助于解决此问题的开源库(或 *gulp* 专有解决方案)?

注意:所有可能的解决方案都必须在 Linux 上运行。我相信这消除了 pywin32。

【问题讨论】:

    标签: python xml xslt ms-word


    【解决方案1】:

    使用 Python 创建 Word 文档的几种方法:

    编辑:

    由于 COM 是不可能的,我建议如下(受@kcrumley 的回答启发):

    使用 UNO 库从 python 自动化 Open Office,在 OOWriter 中打开 HTML 文件,然后另存为 .doc。

    EDIT2:

    现在有一个纯 Python python-docx project 看起来不错(我没用过)。

    【讨论】:

    • 哇,你实现了我要说的 3 个想法中的 2 个(COM 和 RTF)。谢谢你节省了我的时间。 :)
    • +1 建议使用 .RTF 而不是 .DOC
    • 不幸的是,.doc 是必需的。没有 RTF。
    【解决方案2】:

    我尝试python-docx 成功,它使您能够在 Python 中制作和编辑 docx

    【讨论】:

    • 为了在您回答问题时获得更多关注,最好包含一些示例代码,即使它仅链接自您提供的链接。
    • @mbk 我找不到使用这个库创建文档的教程
    • @Volatil3 页面上有例子,这里直接link
    • 这里有一些关于 python-docx 的附加文档,其中包含一些有用的示例:https://python-docx.readthedocs.io/en/latest/。我发现它很有帮助。
    【解决方案3】:

    1) 如果您只想在当前管道的末尾再坚持一步,现在有几个选项可用于将 PDF 文件转换为 Word 文件。我没有尝试过123PDFConverter,但 CNET 编辑推荐它(相同链接);它有免费试用;它支持自动化。与任何第 3 方文件转换器一样,您的工作量可能会有所不同,具体取决于您的 PDF 的复杂程度以及软件的实际性能。

    2) 基于 codeape 的 COM 自动化建议,如果您对 Word 进行 COM 自动化,您可以在 Word 中打开您的实际 HTML 文件,并调用“另存为”命令,将其保存为 DOC 文件。

    【讨论】:

      【解决方案4】:

      我也不得不用 python 做一些类似的事情。这比我想要的更多的手动工作,但是使用 pyRTF 创建的文档导致 Word 和 OpenOffice 崩溃,我没有动力去尝试解决这个问题。

      我发现创建具有我想要的样式的 Word 文档模板最简单(但并不理想)。然后我的 Python 创建一个 HTML 文件,其 <p> 样式在 Word 样式之后标记。然后我在 Word 中打开 HTML 文件并在 Word 中打开模板。我将 HTML 文件中的所有文本剪切并粘贴到模板中,然后 Word 根据我之前设置的样式重新格式化所有文本。在我的情况下,这适用于偶尔的文件。它可能不适用于您的情况。仅供参考。

      【讨论】:

        【解决方案5】:

        您能否将其编写为 WordML XML 文件并将其压缩为 .docx 格式?如果您的客户还没有使用 Office 2007,那么您的客户只需要 Word 2007 过滤器即可。

        有很多例子。

        您还可以将 XML 直接加载到 Word 中,从 2003 开始​​,或 so I've been told

        【讨论】:

        • 很遗憾,这个选项并不理想。据我所知,我需要将我的数据转换为 WordML 以保持文档的格式。