如何把多个word合并成一个文件夹,如何快速把多个word合并成一个

首页 > 实用技巧 > 作者:YD1662023-05-01 04:08:34

python办公自动化 --- Word专栏

在工作学习中

有时我们需要将多个word文件进行合并

如果每个word文件的页数较多

或者word文件比较多

进行人工合并,就会比较麻烦,而且耗时

这时,用Python来处理,3秒就可以搞定!

如何把多个word合并成一个文件夹,如何快速把多个word合并成一个(1)

导入所需的python库

#库docx是处理docx格式word文档的重要库

from docx import Document

#库docxcompose是python合并或追加 微软Word (.docx)文档的库

from docxcompose.composer import Composer

#库pathlib是文件路径处理的库

from pathlib import Path

如何把多个word合并成一个文件夹,如何快速把多个word合并成一个(2)

具体实现过程

"""

获取文件夹中的所有docx格式的文件,返回生成器files,本案例是从e盘下#的400文件夹里提取所有的docx格式的word文档,如果是doc格式的,需先转为docx。

"""

files = Path('e:/400/').glob('*.docx')

#将生成器files转为列表fiels,方便后面使用

files = list(files)

"""

本案例将第1个docx文件,作为合并后文件的模板,也就是说,合并后的新word文档,其页眉页脚以及页码,是以第1个docx文件的页眉页脚以及页码为准的,忽略其它docx文件的页眉页脚以及页码等。

"""

#读取第1个文件

dmt = Document(files[0])

#第1个文件的末尾添加分页符

dmt.add_page_break()

#将添加了分页符的第1个文件,放到Composer对象中,即成为模板

cp = Composer(dmt)

print('模板文件是:{}'.format(files[0])) #提示哪个是模板文件

"""

#将其它docx格式的word文件,追加到Composer对象中,即依照文件在files列表中由左到右的顺序连接起来。同时,输出每次追加文件的名称及其后缀,方便查看并核对合并的前后顺序是否正确。

"""

#循环追加每个docx文件

for file in files[1:]:

dmt = Document(file)

#每个word文件的末尾添加分页符

dmt.add_page_break()

#将每一个dmt追加到Composer对象cp中

cp.append(dmt)

#提示当前合并的文件是哪个文件

print('已合并文件:{}'.format(file))

"""

最后将对象cp中添加的内容输出到本地,并取名为new.docx

"""

#保存合并后的文件为new.docx

cp.save('e:/new.docx')

#提示合并工作完成

print('完成')

如何把多个word合并成一个文件夹,如何快速把多个word合并成一个(3)

注意事项

上面的代码可以实现批量合并docx文档,非常方便我们解决这类合并需求。

默认情况下,Composer对象将每个docx文件从每个文件的末尾开始追加或合并,而不是从下一页开始合并。如果每个文件都要从下一页合并,需要如上所示添加分页符。

对于含有文字、图片、表格等内容的docx,以上代码可以使用。如果docx文件中含有文本框等内容,以上代码运行时会报错。需要将docx文件中的文本框等处理掉,才能使用以上代码。

如何把多个word合并成一个文件夹,如何快速把多个word合并成一个(4)

首页 123下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.