前言
当处理大量文档时,可以将相关内容的文档合并为一个。 此操作既可以提高工作效率,还便于后期文档的整合和分类。 除了通过手动复制和粘贴文档内容之外,通过编程的方式来合并文档也是一个很好的选择。 这对于批量合并也特别有用。 下面,我将介绍如何通过Python来合并Word文档。
所需工具:
- Visual Studio Code
- Spire.Doc for Python
这个程序库支持在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中的。
通过复制文档内容来合并多个文档
此方法是通过直接复制文档内容来合并文档。与上面的方法不同的是,复制并插入的内容是直接放在另一个文档的最后一节里的,并不会新起一节。(这里也是以合并两个文档为例)
代码解释
首先,创建两个 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的最后一节上的。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。