我有几个word文件,每个文件都有特定的内容。我想要一个小片段来演示或帮助我找出如何在使用Pythondocx
库时将word文件组合成一个文件。
例如,在pywin32库中,我执行了以下操作:
rng = self.doc.Range(0, 0)
for d in data:
time.sleep(0.05)
docstart = d.wordDoc.Content.Start
self.word.Visible = True
docend = d.wordDoc.Content.End - 1
location = d.wordDoc.Range(docstart, docend).Copy()
rng.Paste()
rng.Collapse(0)
rng.InsertBreak(win32.constants.wdPageBreak)
但我需要在使用Python docx
库而不是win32.client
库时执行此操作
我已经对上面的示例进行了调整,以使用最新版本的python-docx(在编写本文时为0.8.6)。注意,这只是复制元素(合并元素的样式要复杂得多):
如果你的需求很简单,那么这样做可能会奏效:
你还可以做一些其他的事情,但这应该能让你开始。
结果发现,在一般情况下,将内容从一个Word文件复制到另一个Word文件是相当复杂的,例如,涉及到协调源文档中可能与目标文档冲突的样式。所以这不是我们明年可能增加的功能。
合并包含所有样式的两个文档的另一种方法是使用python库docxcompose(https://pypi.org/project/docxcompose/)。我们不需要明确定义样式,也不必逐段阅读文档并将其附加到主文档中。python docxcompose的用法如下所示
如果要将多个文档合并到一个docx文件中,可以使用下面的函数
相关问题 更多 >
编程相关推荐