前言

当处理大量文档时,可以将相关内容的文档合并为一个。 此操作既可以提高工作效率,还便于后期文档的整合和分类。 除了通过手动复制和粘贴文档内容之外,通过编程的方式来合并文档也是一个很好的选择。 这对于批量合并也特别有用。 下面,我将介绍如何通过Python来合并Word文档。

所需工具:

这个程序库支持在Python平台上创建,编辑或者转换Word文档。目前官方页面上的代码教程还不算完善,建议直接下载Spire.Doc for Python查看示例代码。

准备工作:

首先,我们需要在VS Code中安装需要使用到的Spire.Doc for Python库和plum-dispatch v1.7.4。
在这之前请先确认是否已经安装Python
如果已经安装,继续执行以下步骤即可:

  • 打开VS Code,在中搜索到Python并安装。
  • 依次选择Explorer - NO FOLRDER OPENED- Open Folder
  • 选择一个文件夹,然后在里面新建一个“ .py ”文件。
  • 点击Terminal- New Terminal
  • 输入命令:pip install Spire.Doc

通过插入整个文档来合并多个文档

此方法是通过插入完整文档来合并多个文档,换句话说,是将一个完整的文档插入到另一个文档中新的一节里。(这里以合并两个文档为例)。

代码解释

在代码的开头,先创建一个 Document 实例并加载 Sample1。然后调用 Document.insertTextFromFile(fileName:str,fileFormat:'FileFormat') 方法将整个 Sample2 插入到 Sample1后。 最后,保存结果文档即可。

参考代码

from spire.doc import *
from spire.doc.common import *

# 创建Document实例并加载一个文档
doc = Document()
doc.LoadFromFile("Sample1.docx")

# 将另一个文档完整的插入到第一个文档后
doc.InsertTextFromFile("Sample2.docx", FileFormat.Auto)

# 保存结果文档
doc.SaveToFile("Result1.docx")
doc.Close()

效果图:

这里可以看到Sample2是通过另起一节合并在Sample1中的。
image.png

通过复制文档内容来合并多个文档

此方法是通过直接复制文档内容来合并文档。与上面的方法不同的是,复制并插入的内容是直接放在另一个文档的最后一节里的,并不会新起一节。(这里也是以合并两个文档为例)

代码解释

首先,创建两个 Document 实例并加载两个示例文档。 接下来,循环遍历 Sample2 所有节,以及所有节的子对象。 然后将这些子对象复制并添加到 Sample1 的最后一节中。 最后,保存生成的文档。

参考代码

from spire.doc import *
from spire.doc.common import *

# 分别创建两个Document实例并加载两个需要合并的文档
doc1 = Document()
doc1.LoadFromFile("Sample1.docx")
doc2 = Document()
doc2.LoadFromFile("Sample2.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("Result2.docx")
doc1.Close()
doc2.Close()

效果图

这里可以看到,合并时,此方法是将Sample2的内容直接复制在Sample1的最后一节上的。
image.png


PPPika
1 声望0 粉丝