第46课 · AI 操作 Word 的 3 种方案
本节要点
- AI 操作 Word 有 3 条完全不同的技术路线,先选路线再挑工具
- python-docx:AI 默认用的库,轻量跨平台,适合创建新文档和批量填表;但不支持修订、目录更新、复杂样式
- anthropic 官方 docx Skill(XML 工具链):改老文档能力最强,能处理修订、转 PDF、复杂样式;需要安装 Skill + LibreOffice + pandoc
- win32com / AppleScript(原生自动化):启动真实 Word 进程操作,格式 100% 精确,连宏都能跑;仅限 Windows(Mac 用 AppleScript)
- 一句话决策:建新 → python-docx,改老 → XML 工具链,精调格式 → win32com
- 审计场景推荐:主力 anthropic docx Skill,辅助 python-docx,兜底 win32com
1. 为什么 AI 操作 Word 经常翻车
用过 AI 操作 Word 的人应该都有体会——让它帮忙改个格式,结果 Word 打开后样式全乱了。
根本原因在于:AI 默认用的都是 python-docx 这个 Python 库。而这个库的本质是「猜测 XML」——它按自己的理解去生成 Word 文档的 XML 结构,但 Word 打开后真正呈现的效果由 Word.exe 说了算。
所以常见的翻车场景有:
- 改格式后用 Word 打开,样式全丢了
- 修订模式打不开,直接报错
- 目录字段不更新,永远显示旧数据
- 页眉页脚继承错乱,格式乱了
- 复杂表格变形,合并单元格消失
💡 关键认知:python-docx 是"在猜 XML",Word.exe 才是裁判。它改的是近似,不是精确。
但问题在于——AI 操作 Word 不是一个东西,是 3 条完全不同的路。选错路线,再强的 AI 也调不出你要的格式。
2. 3 种方案一图看懂
| 方案 | 本质 | 安装量 | 最适场景 |
|---|---|---|---|
| ① python-docx 库 | pip install python-docx | 4.1K | 创建新文档、批量填表、跨平台 |
| ② anthropic 官方 docx | XML 直改 + 工具链 | 148.6K | 改老文档、处理修订、转 PDF |
| ③ 原生 Word 自动化 | pip install pywin32(Windows)/ AppleScript(Mac) | 按平台 | 格式精调、宏操作、100% 视觉一致 |
有趣的是:anthropic 官方这个 docx Skill 是 Three.js 作者 mrdoob 写的,安装量 148.6K,遥遥领先。说明它确实解决了 python-docx 解决不了的痛点。
💡 主流 ≠ 万能。148.6K 安装不代表它适合所有场景,选路线比找工具重要。
3. 方案一:python-docx 库(AI 默认,轻量跨平台)
擅长什么
- 创建新文档:让 AI 直接生成一个 Word 报告,不用模板,它自己从头写——这个场景 python-docx 是最合适的
- 批量填表:结构化内容填充
- 字体/段落/简单样式控制
- 跨平台:Windows、Mac 都能用
做不到什么
- 修订/批注交互(直接报错)
- 目录字段更新
- 复杂页眉页脚继承
- 宏/VBA 操作
- Word 打开后样式保留
python-docx 的代码大概长这样(AI 会自动写,库也会自动装,不需要手动操作):
from docx import Document
from docx.shared import Pt
doc = Document('审计报告.docx')
for p in doc.paragraphs:
if p.style.name == 'Heading 1':
p.runs[0].font.size = Pt(18)
doc.save('审计报告_改.docx')💡 Skills 市场上有一个
claude-office-skills/skills@docx-manipulation的提示包(可选),作用是给 AI 看 python-docx 的用法参考——装不装都能用 python-docx,装了 AI 可能写得更准一点。
4. 方案二:anthropic 官方 docx Skill(改老文档最强)
如果你要操作的是一个已有模板、格式要求高、涉及修订或目录,那 python-docx 大概率搞不定。这时候需要方案二——原生 XML 工具链。
思路很简单:.docx 文件本质上是一个 ZIP 压缩包,里面装的 XML。直接解开 ZIP,改 XML,再打包回去——这样操作的就是 Word 自己用的原生格式,还原度最高。
安装方法
npx skills add anthropics/skills@docx -g -y这个命令装的是 anthropic 官方出的 docx Skill(Three.js 作者 mrdoob 写的)。脚本跟着 Skill 走,所以必须装。
还需要系统装两个工具
- LibreOffice(提供
soffice命令):用于格式转换和文本提取 - pandoc:用于文档格式之间的转换
这两个 Skill 会自动调用,提前装好就行。
它能做 python-docx 做不到的
- 接受/拒绝修订(tracked changes)
- 转 PDF
- 处理
.doc老格式 - 复杂样式精确控制
代码示例(AI 会自动执行)
# 解开 docx 改 XML,再打包回去
python scripts/office/unpack.py 审计报告.docx unpacked/
# 编辑 unpacked/word/document.xml
python scripts/office/repack.py unpacked/ 审计报告_改.docx
# 接受所有修订
pandoc --track-changes=accept 审计报告.docx -o clean.docx审计场景改老文档
如果你要操作的是审计报告模板、往现成的 Word 里填数并保留格式——这个方案的能力天花板最高。
5. 方案三:原生 Word/WPS 应用自动化(100% 精确)
前两个方案都是在「模拟 Word」,但方案三直接启动真实的 Word 进程去操作——Word 本身有什么功能,你就能调什么功能。
三种主流实现
| 平台 | 实现方式 | 说明 |
|---|---|---|
| 🪟 Windows MS Word | win32com.client.Dispatch | AI 自动 pip install pywin32 |
| 🍎 macOS MS Word | AppleScript | 系统自带,无需安装 |
| 🧩 WPS 用户 | lc2panda/wps-skills@wps-word | 1.2K 安装,最热门 WPS Skill |
⚠️ 生态现状:没有像 xlwings 那样的 Word 标准封装——因为 Word 的 COM 接口太复杂,社区放弃了。直接让 AI 现写 win32com 代码是最实用的方案。
代码示例
Windows(pywin32):
import win32com.client
word = win32com.client.Dispatch("Word.Application")
doc = word.Documents.Open(r'C:\审计报告.docx')
for p in doc.Paragraphs:
if p.Style.NameLocal == '标题 1':
p.Range.Font.Color = RGB(192, 0, 0)
doc.Save()Mac(AppleScript):
tell application "Microsoft Word"
-- AppleScript 直接操作文档
end tell这个方案的优缺点
✅ 优点:格式最精确,目录字段更新、宏/VBA、页眉页脚复杂继承——Word 能做的它都能做
❌ 缺点:
- 仅限 Windows(Mac 用 AppleScript 但功能有限)
- 需要本机装 Office
- 比前两种方案慢(因为要启动真实的 Word 进程)
6. 同一个任务,3 种写法对比
任务:把审计报告里所有「标题 1」改成 18pt 红色。
| 方案 | 代码 |
|---|---|
| python-docx | for p in doc.paragraphs: if p.style.name=='Heading 1': p.runs[0].font.color=RGBColor(192,0,0) |
| XML 直改 | 解 zip → 找 w:pStyle → 改 w:color → 打包 |
| win32com | for p in doc.Paragraphs: if p.Style.NameLocal=='标题 1': p.Range.Font.Color=RGB(192,0,0) |
同一个需求,3 条路的走法完全不同——这就是为什么「先选路线」是本课唯一要记住的心法。
7. 能力对比矩阵
| 能力 | python-docx | XML 工具链 | 原生操作 |
|---|---|---|---|
| 创建新文档 | ✅ | ✅ | ✅ |
| 改老文档内容 | ⚠️ 仅简单 | ✅ 最强 | ✅ |
| 字体段落格式 | ✅ | ✅ | ✅ 最强 |
| 修订模式 | ❌ | ✅ 接受/拒绝 | ✅ |
| 目录/字段更新 | ❌ | ⚠️ 配合 LibreOffice | ✅ |
| 页眉页脚复杂继承 | ❌ | ⚠️ | ✅ |
| 宏/VBA | ❌ | ❌ | ✅ |
| 跨平台 | ✅ | ✅ | ❌ 仅 Windows |
| 需要本机装 Word | ❌ | ⚠️ 需 LibreOffice | ✅ |
8. 选型决策树
不知道怎么选?按这个流程走:
你要做什么?
├── 创建新文档,不用模板?
│ └── → python-docx(AI 自动装,跨平台)
│
├── 改老文档,涉及修订/目录/复杂格式?
│ └── → anthropic 官方 docx Skill(必装)
│
└── 100% Word 视觉一致(连宏都跑)?
└── → win32com(Windows)/ AppleScript(Mac)审计场景三层组合
| 角色 | 方案 | 场景 |
|---|---|---|
| 🎯 主力 | anthropic 官方 docx Skill | 改老文档、处理修订、转 PDF |
| 🔧 辅助 | python-docx | 批量创建简单文档、快速原型 |
| 🛡️ 兜底 | win32com 代码 | 极致格式精调、100% 视觉一致 |
不用考虑 MS Graph 和 Pandoc 的单独方案。专注这 3 种就够了。
9. 怎么找和装 Word 相关的 Skill
方法还是第 9 课的 find-skills。对 AI 说:
帮我用 find-skills 查找一下操作 Word 的 Skill,最好是热门度比较高、评分比较高的。
它会帮你搜出排名靠前的 Word 相关 Skill。排名第一的通常是 anthropic 官方的 docx Skill。
如果要安装,直接对 AI 说:
安装这个 anthropic 官方的 docx Skill。
它会自动执行 npx skills add anthropics/skills@docx -g -y。
💡 如果你用的是 Claude Code:在 Claude Code 的插件市场里也可以搜索安装 Office 相关的 Skill,第 25 课有详细讲。
10. 安装命令汇总
# ===== 方案二(必装):anthropic 官方 docx Skill =====
npx skills add anthropics/skills@docx -g -y
# ⚠️ 还需要系统装 LibreOffice + pandoc
# ===== 方案一(可选提示包,不装也能用 python-docx)=====
npx skills add claude-office-skills/skills@docx-manipulation
# ===== 方案三:原生 Word 自动化 =====
# Windows:AI 自动 pip install pywin32
# Mac:AppleScript 系统自带,无需装任何东西
# WPS 用户可选:
npx skills add lc2panda/wps-skills@wps-office💡 装完 Skill 后重启 AI 工具才能生效。如果装完没反应,先退出再重开。
⚠️ 常见问题
python-docx 和 anthropic docx Skill 有什么区别?
python-docx 是一个 Python 库,AI 写代码时调用它来操作 Word。anthropic docx 是一个 Skill,它装了一组脚本(unpack.py / pack.py 等),走的是「解 ZIP → 改 XML → 打包」的路线。后者处理老文档的能力更强,但需要额外安装 LibreOffice 和 pandoc。
我不用 Skill,直接让 AI 用 python-docx 行不行?
行。AI 默认就会用 python-docx 库,不需要装任何 Skill。但你得知道它的能力边界——简单的创建文档、填表没问题;复杂的修订、目录、页眉页脚就别指望它了。
Mac 没有 pywin32 怎么办?
Mac 有 AppleScript,系统自带的。对 AI 说「用 AppleScript 操作 Word」,它就能写出对应的脚本。但功能上比 Windows 的 win32com 少一些。
WPS 能用这些方案吗?
WPS 也有对应的操作接口。Skills 市场上有一个 lc2panda/wps-skills@wps-word(1.2K 安装),就是专门操作 WPS 的。不过我没亲自试过,你可以装来试试。
微软 Graph API 呢?
不用考虑。那套 API 走的是云端路线,跟本地文件操作是两码事。专注上面 3 种就够了。
装完 Skill 没反应?
先重启 AI 工具。Skill 是启动时加载的,运行中装的新 Skill 不一定能马上识别。退出 OpenCode / Claude Code 重新打开试试。
哪种方案效果最好?
纯论效果:win32com(Windows)> anthropic docx Skill > python-docx。但 win32com 只能 Windows 用,而且需要装 Word。如果跨平台的话,anthropic docx Skill 综合下来是最推荐的。
关键收获
TIP
AI 操作 Word,先选路线,再动手:
- 创建新文档 → python-docx(AI 自动装,跨平台)
- 改老文档、处理修订、转 PDF → anthropic 官方 docx Skill(必装)
- 100% 格式精确、跑宏、极致精调 → win32com(Windows)/ AppleScript(Mac)
审计场景记住三个字:XML 工具链(改老)+ python-docx(建新)+ win32com(精调)。
主流 ≠ 万能。anthropic 官方 docx Skill 改老文档的能力吊打 python-docx,但很多 AI 默认不会用它——你作为用户,需要主动告诉 AI 选哪条路。这是本课最想传递的一个认知。
参考链接
- anthropic 官方 docx Skill:https://skills.sh/anthropics/skills/docx
- claude-office-skills docx-manipulation:https://skills.sh/claude-office-skills/skills/docx-manipulation
- WPS Office Skill:https://skills.sh/lc2panda/wps-skills/wps-office
- Microsoft Word VBA API 官方文档:https://learn.microsoft.com/office/vba/api/overview/word
- 第9课 · 用 find-skills 查找想要的 Skill:/lessons/09-find-skills
- 第25课 · Claude Code 安装常用插件:/lessons/25-claude-code-install