返回 Skill 列表
extension
分类: 其它无需 API Key

Boo哥AI-docx大纲提取

提取 docx 文件的段落大纲等级目录,按 outlineLvl 缩进输出到 txt 文件。 适用场景:Word文档章节结构分析、标书/报告目录提取、文档大纲等级检查。 触发关键词:大纲等级、outlineLvl、提取目录、docx目录、段落大纲、文档结构。 ⚠️ 本技能只关心段落属性中的 w:outlineLvl,不依赖段落样式(pStyle)的颜色/字体。

person作者: user_3c9003afhubcommunity

Docx 大纲等级目录提取

提取原理

OOXML(.docx)中,段落的"大纲等级"有两个来源,优先级从高到低:

  1. 段落直接设置<w:pPr><w:outlineLvl w:val="0"/>(段落属性直接指定)
  2. 样式继承 — 段落引用样式 <w:pPr><w:pStyle w:val="1"/>,该样式在 styles.xml 中定义了 <w:outlineLvl>

OutlineLvl 取值:0=最高级(类似Heading1),1=二级,... 8=九级。

执行步骤

第1步:确认目标文件

向用户确认要分析的 .docx 文件路径。如果用户只说"当前文件夹",则列出当前目录中的 .docx 文件让用户选择。

第2步:运行提取脚本

使用 scripts/extract_outline.py 脚本:

python <skill-base>/scripts/extract_outline.py <docx文件路径> [--output <输出txt路径>]

参数说明:

  • 第一个参数(必需):docx 文件路径
  • --output(可选):输出 txt 路径,默认与 docx 同目录、同文件名 + _大纲目录.txt

脚本自动完成:

  1. 解析 styles.xml,建立 styleId → outlineLvl 映射表
  2. 遍历 document.xml 所有段落,优先取段落直接 outlineLvl,其次取样式继承
  3. 按大纲等级缩进输出,0级顶格,每级增加2空格缩进
  4. 统计各级别段落数量,附在末尾

第3步:向用户汇报

输出:

  • 每个文档的样式→大纲等级映射表
  • 各文档有 outlineLvl 的段落总数
  • 输出文件路径

输出格式示例

======================================================================
  文档大纲等级目录
  文件:xxx.docx
  日期:2026-05-27
======================================================================

[L0] 施工经验                                   ← 样式ID=1 → outlineLvl=0
  [L1] 第一节 总体施工部署                       ← 样式ID=2 → outlineLvl=1
    [L2] 1.总体思想                              ← 样式ID=3 → outlineLvl=2
    [L2] 2.施工部署的原则
  [L1] 第二节 测量方案
    [L2] ...

────────────────────────────────────────────────────────
  统计:L0=2段  L1=18段  L2=38段  合计=58段
======================================================================

常见情况

| 情况 | 处理方式 | |------|---------| | styles.xml 中样式无 outlineLvl | 该样式段落视为普通正文,不输出 | | 段落既无直接 outlineLvl 也无样式 | 跳过(普通正文) | | 段落直接 outlineLvl 与样式不同 | 以段落直接值为准 |

注意事项

  • 不需要 pandoc、python-docx 等第三方库
  • 纯 Python 标准库:zipfile + xml.etree.ElementTree
  • 编码:输入和输出均为 UTF-8

关于

  • 品牌: Boo哥AI智写
  • 联系方式: QQ邮箱 409966830@qq.com
  • 座右铭: 智写万象,标定未来