2

我想将数据输入 Microsoft Excel 电子表格,并让该数据与其他文档和网络表单进行交互和写入。

成功后,我正在使用 xlwings 从 Excel 电子表格中提取数据。现在,我一直在处理 .docx 文件。此处的目标是将 Excel 数据写入 Microsoft Word .docx 文件模板的特定部分并创建一个新文件。

我的具体问题是:

您能否仅修改 word/document.xml 文件中的文本字符串,并仍保持其 .docx 封装的完整性和功能性?似乎在对 Word 文档进行最轻微的更改时,XML 代码中可能会发生许多变化。我一直在使用 python-docx 和 lxml,但我不确定我想要做的事情是否可以通过这条路线实现。

任何建议或经验分享将不胜感激。我觉得我已经阅读了至少 5 次通过谷歌搜索很容易发现的每篇文章。

让我知道是否有任何需要澄清的地方。

一些需要注意的事情:我大约 2 个月前开始接触编码。那段时间我一直在集中精力做这件事,我觉得我正在学习基本概念,但我的知识存在严重差距。

这是我的工具:Yosemite 10.10、Microsoft Office 2011 for Mac

4

1 回答 1

1

您可能需要更具体一些,但原则上,简短的回答是肯定的。

在一定程度上,python-docx 所做的只是修改 XML 中的字符串。不过有几件事:

  • 您创建的 XML 需要根据架构保持格式正确和有效。<w:t>因此,例如,如果您更改包含在元素中的文本,则效果很好。相反,如果您在其中一个 .xml 部分的任意点注入一堆随机 XML,则会损坏文件。

  • XML“文件”,称为组成.docx 文件的部分,包含在称为package的 Zip 存档中。您必须正确解包和重新打包该组部件,以便之后获得有效的 .docx 文件。python-docx为您处理所有这些细节,但如果您直接访问 .docx 文件,则需要自己处理。

于 2015-07-10T19:51:49.457 回答