You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何批量合并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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 07:18:01