任务背景:收集到了42个word文档,每一个文档中是一个表格,包含插入的电子签名,需要把这42个文件合并到一个word文档中,并且每一个word文件合并到新文件中要另起一页。

代码如下:需要修改第48行INPUT_FOLDER,改为自己的文件夹路径,该文件夹中存放所有需要合并的word文件。

'''
Autor: Yeah LWY
Date: 2026-06-22 14:27:48
Description: 
LastEditors: Please set LastEditors
LastEditTime: 2026-07-10 11:57:29
'''
import os
import glob
from docx import Document
from docxcompose.composer import Composer
"""_summary_
    把多个word文档(指导教师工作总结)合并成一个
"""


def merge_word_documents_composer(input_folder,
                                  output_filename="merged_document.docx"):
    """
    使用 docxcompose 库合并文档,完美支持图片、样式等。
    """
    docx_files = sorted(glob.glob(os.path.join(input_folder, "*.docx")))

    if not docx_files:
        print(f"在文件夹 '{input_folder}' 中未找到任何 .docx 文件。")
        return

    # 初始化第一个文档作为基础
    master_doc = Document(docx_files[0])
    composer = Composer(master_doc)

    for doc_path in docx_files[1:]:
        print(f"正在合并: {os.path.basename(doc_path)}")
        doc = Document(doc_path)

        # 在追加前插入分页符
        # 注意:docxcompose 的 append 不会自动加分页符,我们需要手动加
        master_doc.add_page_break()

        # 追加文档
        composer.append(doc)

    composer.save(output_filename)
    print(f"合并完成!文件已保存为: {output_filename}")


if __name__ == "__main__":
    INPUT_FOLDER = "C:/Users/liuwenying/Downloads/附件9"

    if not os.path.exists(INPUT_FOLDER):
        print(f"错误: 文件夹 '{INPUT_FOLDER}' 不存在。")
    else:
        # 尝试使用 docxcompose 方法
        try:
            merge_word_documents_composer(INPUT_FOLDER, "最终合并结果.docx")
        except ImportError:
            print("未安装 docxcompose 库。正在回退到手动修复方法...")
            # 如果没安装,则执行下面的手动修复代码

The above code was generated by QODER CN.

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐