Background
我这里是把
reports/tpl/
目录下的多个报表模板,合并成最终的报表放到reports/res/
目录下。
1、依赖下载
pip install python-docx
pip install docxcompose
2、源码
import os
from docx import Document
from docxcompose.composer import Composer
def merdocx(src_files, dst_file):
'''合并多个docx文件
:param src_files: 源文件列表
:param dst_file: 目标文件路径
:return:
'''
# 分页符号
page_break = Document()
page_break.add_page_break()
# 第一个作为模板文件
dst_doc = Document(src_files[0])
dst_composer = Composer(dst_doc)
# 从第二个文件开始合并
for i in range(1, len(src_files)):
# 填充分页符
dst_composer.append(page_break)
# 拼接文档
dst_composer.append(Document(src_files[i]))
# 保存为目标文档
dst_composer.save(dst_file)
if __name__ == '__main__':
# 源文件所在目录
src_files_dir = 'reports/tpl/'
# 目标文件路径
dst_file = 'reports/res/dst.docx'
# 源文件列表
src_files_list = [f'{src_files_dir}/{i}' for i in os.listdir(src_files_dir)]
# 合并docx文件
merdocx(src_files_list, dst_file)