处理大量的 Word 文档可能是非常具有挑战性的。不论是编辑还是审核大量的文档,都需要花费很多时间打开和关闭文件。此外,分享和接收大量分散的 Word 文档也是很麻烦的事情,因为这可能需要分享者和接收者进行大量重复的发送和接收操作。为了提高工作效率并节省时间,我们可以将相关的多个 Word 文档合并成一个单一的文件,从而可以减少打开和关闭文档的时间浪费,同时也避免了分享和接收大量分散的文档所带来的繁琐操作。本文将介绍如何使用 Spire.Doc for Python 通过 Python 程序轻松合并 Word 文档。
安装 Spire.Doc for Python
本教程需要用到 Spire.Doc for Python 和 plum-dispatch v1.7.4。可以通过以下 pip 命令将它们轻松安装到 Windows 中。
pip install Spire.Doc
如果您不确定如何安装,请参考:如何在 Windows 中安装 Spire.Doc for Python
用 Python 通过插入文件合并 Word 文档
Spire.Doc for Python 提供的 Document.insertTextFromFile() 方法可以用于将其他 Word 文档插入到当前文档中,插入的内容将从新页面开始。通过插入合并 Word 文档的详细步骤如下:
- 创建一个 Document 类的对象,并使用 Document.LoadFromFile() 方法加载一个 Word 文档。
- 使用 Document.InsertTextFromFile() 方法将另一个文档中的内容插入到载入的文档中。
- 使用 Document.SaveToFile() 方法保存文档。
- Python
from spire.doc import *
from spire.doc.common import *
# 创建一个 Document 类的对象并加载一个 Word 文档
doc = Document()
doc.LoadFromFile("示例1.docx")
# 将另一个 Word 文档的内容插入到当前文档中
doc.InsertTextFromFile("示例2.docx", FileFormat.Auto)
# 保存文档
doc.SaveToFile("output/插入文件合并Word文档.docx")
doc.Close()
用 Python 通过复制内容合并 Word 文档
合并 Word 文档还可以通过将内容从一个 Word 文档复制到另一个 Word 文档来实现。这种方法可以保持原始文档的格式,且从另一个文档复制的内容会在当前文档的末尾开始,而无需重新开始新的页面。具体步骤如下:
- 创建两个 Document 类的对象,并使用 Document.LoadFromFile() 方法加载两个 Word 文档。
- 使用 Document.Sections.get_Item() 方法获取目标文档的最后一个节。
- 遍历要复制的文档中的节,然后遍历节的子对象。
- 使用 Section.Body.ChildObjects.get_Item() 方法获取节的子对象。
- 使用 Section.Body.ChildObjects.Add() 方法将子对象添加到目标文档的最后一个节中。
- 使用 Document.SaveToFile() 方法保存结果文档。
- Python
from spire.doc import *
from spire.doc.common import *
# 创建两个 Document 类的对象并加载两个 Word 文档
doc1 = Document()
doc1.LoadFromFile("示例1.docx")
doc2 = Document()
doc2.LoadFromFile("示例2.docx")
# 获取第一个文档的最后一个节
lastSection = doc1.Sections.get_Item(doc1.Sections.Count - 1)
# 遍历第二个文档中的各个节
for i in range(doc2.Sections.Count):
section = doc2.Sections.get_Item(i)
# 遍历各个节中的子对象
for j in range(section.Body.ChildObjects.Count):
obj = section.Body.ChildObjects.get_Item(j)
# 将第二个文档中的子对象复制并添加到第一个文档的最后一个节中
lastSection.Body.ChildObjects.Add(obj.Clone())
# 保存合并后的文档
doc1.SaveToFile("output/复制内容合并Word文档.docx")
doc1.Close()
doc2.Close()
申请临时 License
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。