如何批量合并Word文件,以文件名作为Heading1且原有标题层级降级
可行实现方案
方案1:Python脚本实现(推荐,适配批量场景)
适合有一点编程基础的用户,全程离线、可自定义规则,处理数百个文件仅需几秒。
- 第一步:安装依赖库,运行命令:
pip install python-docx - 第二步:将所有待合并docx放入同一文件夹,在该文件夹下新建
merge_docx.py文件,粘贴以下代码:
from docx import Document import os # 配置项 input_folder = "." # 待合并docx所在文件夹,当前文件夹用. output_file = "合并结果.docx" ignore_files = [output_file] # 不需要合并的文件列表 # 初始化输出文档 merged_doc = Document() # 遍历所有docx文件 for filename in sorted(os.listdir(input_folder)): if not filename.endswith(".docx") or filename in ignore_files: continue file_path = os.path.join(input_folder, filename) # 添加文件名作为Heading1 file_title = os.path.splitext(filename)[0] # 去掉后缀的文件名,要保留后缀可以直接用filename merged_doc.add_heading(file_title, level=1) # 打开待合并文档 sub_doc = Document(file_path) # 遍历子文档所有段落,降级标题层级 para_styles = [f"Heading {i}" for i in range(1, 10)] # 匹配所有标题样式 for para in sub_doc.paragraphs: if para.style.name in para_styles: # 提取原标题等级,+1降级 original_level = int(para.style.name.split()[-1]) new_level = original_level + 1 if new_level <= 9: # Word标题最多9级 para.style = f"Heading {new_level}" # 追加到合并文档 merged_doc.add_paragraph(para.text, style=para.style) # 可选:每个文件结束后加分页符 merged_doc.add_page_break() # 保存结果 merged_doc.save(output_file) print(f"合并完成,结果已保存到{output_file}")
- 第三步:在文件夹地址栏输入
cmd打开命令提示符,执行python merge_docx.py即可得到合并后的文件。
方案2:Office插件批量处理(零代码)
适合不会编程的用户,直接用成熟的办公插件实现需求:
- 安装免费Office插件如「小恐龙办公助手」,WPS用户可直接使用内置的批量合并功能
- 打开空白Word文档,找到插件内的「批量合并文档」功能
- 导入所有待合并docx,在合并设置中勾选两个选项:每个文件前插入文件名作为一级标题、原有标题层级整体降级1级
- 点击合并即可直接生成符合要求的文档。
方案3:Pandoc命令行实现
适合习惯使用命令行工具的用户,跨平台可用:
- 第一步:安装Pandoc并添加到系统环境变量PATH
- 第二步:Windows用户可直接在待合并文件夹下新建批处理文件
merge.bat,粘贴以下内容后双击运行:
@echo off del /q *_temp.md *_header.md 2>nul for %%f in (*.docx) do ( if not "%%f"=="合并结果.docx" ( pandoc -s "%%f" -t markdown -o "%%~nf_temp.md" echo # %%~nf > "%%~nf_header.md" powershell -Command "(Get-Content '%%~nf_temp.md') -replace '^# ', '## ' | Add-Content '%%~nf_header.md'" ) ) pandoc *_header.md -o 合并结果.docx del /q *_temp.md *_header.md 2>nul echo 合并完成
- Linux/macOS用户将上述逻辑改为Shell脚本执行即可。
注意事项
- 处理前请关闭所有待合并的docx文件,避免文件占用导致处理失败
- 建议先选取3-5个测试文件验证效果,确认格式、标题层级符合预期后再全量处理
- 上述方案均支持保留原文档的图片、表格、列表等常规元素,无需额外配置
内容的提问来源于stack exchange,提问作者z8080
相关产品推荐
相关产品推荐

