Part 2 · 第 8 章 · Level 0 → 2 深度实战

让代码生成 Office
AI 操控 Word、Excel、PPT 的三条路径

大多数人用 AI 处理 Office 文件的方式是:AI 写内容,人工粘贴进文档,然后手动调格式。这一章要颠覆这个假设——Word、Excel、PPT 底层都是代码构成的,理论上 AI 可以直接生成完整的文件,不需要你手动搬运任何东西。

三条路径:① AI 生成 VBA 或 Python 代码,代码直接创建/操作 Office 文件;② Claude.ai 网页版直接输出成品级文档,对很多场景已经是终态,无需 Office;③ Claude Code + python-docx/pptx/openpyxl,本地批量生产完整格式化文件。Coze 不在这一章的工具栈里——Office 场景的核心是代码能力,不是 Bot 配置。

Office 底层是代码:一个改变一切的认知

认知基础 · 为什么代码可以生成 Office

你现在打开一个 Word 文档,看到的是标题、正文、表格、图片。但 Word 文档的本质不是你看到的那个界面——它是一个 ZIP 压缩包,里面装着一组 XML 文件。你可以亲手验证这件事:把任意一个 .docx 文件重命名为 .zip,然后解压,你会看到一个叫 word/document.xml 的文件,打开它,里面是这样的内容:

<!-- word/document.xml 节选 -- 这就是"合同审核备忘录"这几个字在磁盘上的真实样子 --> <w:p> <w:pPr> <w:pStyle w:val="Heading1"/> </w:pPr> <w:r> <w:t>合同审核备忘录</w:t> </w:r> </w:p> <w:tbl> <w:tr> <w:tc><w:p><w:r><w:t>条款位置</w:t></w:r></w:p></w:tc> <w:tc><w:p><w:r><w:t>风险说明</w:t></w:r></w:p></w:tc> </w:tr> </w:tbl>

Excel 的 .xlsx 是同样的结构,PPT 的 .pptx 也是。整个 Office 生态的底层,是一套叫做 Office Open XML 的标准,由微软制定并开放,2008 年成为国际标准。这意味着:任何能读写 XML 的程序,理论上都能创建和操作 Office 文件。而 VBA(Visual Basic for Applications)是 Office 自带的脚本语言,Python 则有 python-docx、openpyxl、python-pptx 三个专为此设计的库。当你让 AI 写这些代码时,AI 就相当于在替你操控 Word、Excel、PPT 的底层——不是在"帮你写内容",而是在"帮你写一个可以创建完整文件的程序"。

Office 文件的真实结构:ZIP + XML 📄 report.docx 你看到的 重命名 .zip 解压 report.zip / 解压后 📁 word/ document.xml ← 所有正文 styles.xml ← 样式定义 settings.xml ← 文档设置 本质上是一组 XML 文件 因此 AI 可以通过三条路径生成它 路径① VBA 宏 Office 自带脚本,宏运行即创建完整文件 路径② Claude 网页直出 直接输出成品文档,很多场景无需 Office 路径③ Claude Code + Python python-docx/pptx/openpyxl,本地批量生产

一个 .docx 文件的底层:ZIP 压缩包里的 XML——代码完全可以读写它

理解这个底层逻辑,是这一章所有内容的基础。你不再需要手动把 AI 生成的文字搬进 Word 然后调格式——因为你可以让 AI 写一段代码,这段代码会直接帮你创建一个格式正确、样式完整、数据准确的 Word 文档。接下来我们来看三条具体路径,每一条都有它最适合的场景。

路径一:AI 写 VBA,Office 自己创建自己

路径① · VBA 宏 · 无需 Python 环境

VBA(Visual Basic for Applications)是 Word、Excel、PPT 自带的内置脚本语言,已经存在三十年,功能极其完整——任何你在 Office 界面上能做的操作,VBA 都能写成代码自动完成。你不需要学 VBA 的语法,只需要让 AI 帮你写,然后按下运行。这条路径的最大优势是零环境配置:所有 Windows 和 Mac 的 Office 都内置了 VBA 运行环境,什么都不用装,打开 Office 就能用。

锚点案例一:合同审核报告(Word VBA)

小方是法务助理,每周要出具 5 到 8 份合同审核备忘录。每份备忘录结构固定:一级标题是文件名,下面是基本信息表格,然后是风险条款表格(四列:条款位置 / 原文节选 / 风险说明 / 建议处理),最后是签署建议段落。她以前把 AI 生成的文字粘进 Word,手动调格式,每份至少花 20 分钟在排版上。现在她用 AI 生成一段 Word VBA 宏,运行一次,一份带完整格式、表格、样式的 Word 文档直接出现在桌面上。

她给 AI 的需求描述很简单:"帮我写一段 Word VBA 宏,生成一份合同审核备忘录,包含:① 一级标题'合同审核备忘录 — [合同名]';② 一个 3 行 2 列的基本信息表格(合同名称、签约双方、合同金额、有效期等字段);③ 一个 5 行 4 列的风险条款表格,表头为:条款位置 / 原文节选 / 风险说明 / 建议处理方式;表头行用蓝色背景;④ 最后一段'签署建议'加粗。文档保存到桌面,文件名包含今天日期。"AI 给她一段 VBA 代码,她复制进 Word 的 VBA 编辑器(按 Alt+F11 打开),运行,完成。

' AI 生成的 Word VBA 宏(简化版,展示结构) Sub 生成合同审核备忘录() Dim doc As Document Set doc = Documents.Add ' ① 设置一级标题 With doc.Content .InsertAfter "合同审核备忘录 — 供应商框架协议" End With doc.Paragraphs(1).Style = "标题 1" ' ② 插入基本信息表格 Dim tInfo As Table Set tInfo = doc.Tables.Add(doc.Range(doc.Content.End-1, doc.Content.End-1), 4, 2) tInfo.Borders.Enable = True tInfo.Cell(1,1).Range.Text = "合同名称" tInfo.Cell(1,2).Range.Text = "供应商框架协议" tInfo.Cell(2,1).Range.Text = "签约双方" tInfo.Cell(2,2).Range.Text = "XX公司 / YY供应商" ' ③ 插入风险条款表格(4列,表头蓝色背景) Dim tRisk As Table Set tRisk = doc.Tables.Add(...) tRisk.Rows(1).Shading.BackgroundPatternColor = RGB(37, 99, 235) tRisk.Cell(1,1).Range.Text = "条款位置" tRisk.Cell(1,2).Range.Text = "原文节选" tRisk.Cell(1,3).Range.Text = "风险说明" tRisk.Cell(1,4).Range.Text = "建议处理方式" ' ④ 保存到桌面,文件名含日期 doc.SaveAs2 Environ("USERPROFILE") & "\Desktop\合同审核_" & Format(Date, "yyyymmdd") & ".docx" MsgBox "文档已生成到桌面 ✓" End Sub

锚点案例二:销售数据报表(Excel VBA)

销售运营小明每月要生成一张格式化的销售汇总表:数据来自多个工作表,需要汇总、计算环比、标红异常值、生成折线图,最后存为独立文件发给总监。这件事他每月花大半天。他描述需求给 AI,AI 写了一段 Excel VBA 宏,工作流程是:读取当月 Sheet1 的原始数据 → 汇总各门店金额 → 与 Sheet2 的上月数据对比计算环比 → 环比下降超过 10% 的单元格自动填充红色 → 基于汇总数据生成折线图 → 保存为新文件。他运行宏,3 秒完成,整个过程不需要动任何单元格。

给 AI 的需求描述方式

与其问"帮我写 Excel 宏",不如按操作步骤描述:"我有一个 Excel 文件,Sheet1 是本月原始数据(列:门店名/日期/销售额),Sheet2 是上月同样结构的数据。请写一段 VBA 宏,执行以下操作:① 在 Sheet3 生成汇总表,按门店合计本月和上月销售额,并计算环比增减;② 环比下降超过 10% 的行,整行背景填充浅红色;③ 在 Sheet3 右侧插入一个折线图,X轴是门店名,两条线分别是本月和上月;④ 把 Sheet3 另存为新文件到桌面,文件名格式:'月度销售对比_YYYYMM.xlsx'。"

描述越具体,AI 生成的代码越可以直接运行,调试次数越少。

VBA 适用场景 · 判断标准

满足以下任一条件,优先选 VBA:① 只需要在 Office 内部操作(不需要读写外部文件或联网);② 你没有 Python 环境且不想安装;③ 需要操作 Office 的格式细节(字体颜色、单元格样式、图表类型)——python-docx 处理样式不如 VBA 直观;④ 最终文件要给不会用 Python 的同事运行。VBA 的局限是速度(处理几万行以上数据变慢)和无法直接联网,这两种情况换 Python。

路径二:Claude 网页版直接输出成品——很多场景不需要 Word

路径② · Claude.ai 网页 · 零代码,即用即走

有一类场景经常被忽略:很多你以为必须放在 Word 里的文档,其实根本不需要 Word。内部分析备忘录、项目汇报摘要、市场调研简报、技术说明文档——这些文件的核心需求是"内容清晰、格式工整、可以分享",而不是"必须是 .docx 格式"。Claude.ai 的网页版可以直接生成格式完整、结构清晰、排版美观的富文本输出,你截图分享、复制进邮件、导出成 PDF,已经是终态,不需要再开 Word 做任何事。

这条路径的价值在于极速交付:不需要配置任何工具,打开浏览器就能用。Claude.ai 的 Projects 功能可以让你把角色设定和输出格式固化下来,每次只需要填入变动的内容变量。对于急需快速出结果的场景——比如开会前 20 分钟需要一份竞品分析背景材料,或者客户临时问你某个行业的基本情况——Claude 网页版的速度没有任何路径可以匹敌。

场景一:市场调研简报(5 分钟交付)

策略团队的小陈接到一个临时需求:下午 3 点的高管会议需要一份关于新能源商用车市场的背景材料,现在是 2 点 40 分。他打开 Claude.ai,发送一条带有详细格式要求的请求:"你是一位资深行业分析师,请生成一份新能源商用车市场背景简报,格式要求:带清晰的 H2/H3 标题层级,关键数据加粗,包含:市场规模与增速(近两年)/ 主要玩家及市场份额 / 当前阶段判断 / 三个值得关注的变量。控制在 800 字以内,语言简洁直接,面向非专业的高管受众。"3 分钟后他得到一份排版清晰的报告,用截图发到微信群,会前背景同步完成。

这份材料的"格式"来自 Claude 的 Markdown 渲染——在 Claude.ai 网页界面里,Markdown 的标题、加粗、表格都会直接渲染成视觉清晰的富文本。你不需要把它粘进任何地方,网页界面本身就是可以分享的版本。如果真的需要 .docx 格式,你可以把 Claude 的输出粘进一个空 Word 文档,Markdown 格式会自动映射成 Word 的段落样式,格式调整时间不超过 5 分钟。

场景二:复杂分析报告,Claude 网页版的极限在哪里

Claude 网页版不是万能的。当报告需要导入真实数据文件(而不是你能描述的数据)、需要精确的品牌字体和颜色系统、需要嵌入从外部系统实时抓取的图表,或者对方明确要求 .docx 格式且需要打印的时候,Claude 网页版就到达了边界。这时候要切换到路径一(VBA/Python 生成文件)或路径三(Claude Code 本地处理)。判断标准很简单:如果内容可以完全用文字描述给 AI,用路径二;如果需要读取本地文件或处理真实数据,用路径一或三。

普通人的感知

很多人用了 Claude 网页版之后觉得"输出挺好的,但还是要粘进 Word 调格式"。这个习惯值得重新审视——你的上级或客户真正需要的是 Word 文件,还是清晰的内容?对内部协作来说,截图或 PDF 往往够用,完全不需要再开 Word。把"必须是 Word"这个假设从你的工作流程里拆出来,你会发现很多事情可以比你想象的快 10 倍。

路径三:Claude Code 本地批量生产完整 Office 文件

路径③ · Claude Code · SKILL.md + Python 库

当你需要批量生成文件——给 50 家门店各生成一份月度报告、给 200 个客户各生成一份定制化方案文档、每周从数据库拉取数据自动生成一份格式完整的 PPT——前两条路径都不够用。路径一的 VBA 难以实现真正的批量循环处理;路径二的 Claude 网页版无法读取本地文件。这时候需要路径三:Claude Code + Python 专业库,在本地直接生成完整的 Office 文件。

Python 有三个专为此设计的库:python-docx 处理 Word、openpyxl(或 xlsxwriter)处理 Excel、python-pptx 处理 PPT。它们直接操作 Office Open XML,可以精确控制每一个样式细节:字体、颜色、表格格式、图表、页眉页脚、批注。Claude Code 的 SKILL.md 声明 allowed-tools: Read, Bash,就可以读取本地数据文件、调用 Python 脚本、输出一批完整的 Office 文件,整个过程无需你手动干预任何一步。

锚点案例:50 家门店月度绩效报告批量生成

连锁零售品牌的区域运营总监小林,每月月初要给管辖的 50 家门店各发一份绩效报告 Word 文档——每份报告结构完全一样,但数据不同:门店销售额、坪效、客单价、同比变化、当月排名、下月重点提示。过去这件事的流程是:数据组发来一张汇总 Excel → 小林团队人工逐家生成 Word 报告 → 发邮件或企微。全程需要 3 个人花一整天。现在她用 Claude Code 帮她写了一套 SKILL.md + Python 脚本:读取汇总 Excel → 按门店遍历 → 每家门店调用模板 → 填入对应数据 → 生成独立 Word 文件 → 全部存入指定文件夹。50 份文件,8 分钟生成完毕,格式完全一致,没有任何人工操作。

# SKILL.md 触发后,Claude Code 调用的 Python 脚本(结构示意) from docx import Document from docx.shared import RGBColor, Pt import pandas as pd import os # 读取汇总数据 df = pd.read_excel('月度数据汇总.xlsx') for _, row in df.iterrows(): # 从模板文件复制(保留品牌字体和封面设计) doc = Document('门店报告模板.docx') # 替换所有占位符({{门店名}} {{销售额}} 等) for para in doc.paragraphs: for placeholder, value in { '{{门店名}}': row['门店名称'], '{{销售额}}': f"{row['销售额']:,.0f} 元", '{{环比}}': f"{row['环比']:+.1f}%", '{{排名}}': f"第 {row['排名']} 名 / 共50家" }.items(): if placeholder in para.text: para.text = para.text.replace(placeholder, str(value)) # 环比为负时,排名数字变红色 if row['环比'] < 0: # 找到排名段落,设置红色字体 for run in para.runs: run.font.color.rgb = RGBColor(0xEF, 0x44, 0x44) # 保存为独立文件 filename = os.path.join('月报输出', f"{row['门店名称']}_月报_{month}.docx") doc.save(filename) print(f"✓ 已生成 {len(df)} 份门店月报")

这段代码由 Claude Code 根据小林的需求描述自动生成,包含模板读取、占位符替换、条件样式(负增长变红)、批量保存等完整逻辑。与第七章提到的"券商年报分析"SKILL.md 是完全相同的工程模式——区别只是输出对象从分析报告换成了 Word 文件。任何需要"批量按模板生成文件"的场景,都可以用同样的框架解决:准备一个 Office 模板文件、一份数据源(Excel/CSV/数据库)、告诉 Claude Code 要做什么替换逻辑,剩下的交给代码。

适合路径三的典型场景

Word 批量生成:客户合同(变量:客户名/金额/条款)、员工 offer letter(变量:姓名/岗位/薪资)、定期项目进展报告(变量:项目名/里程碑/负责人)。

Excel 批量处理:多个子公司的数据文件合并为一张总表、给每个部门生成独立的费用分析表、把 CRM 导出的原始数据清洗并格式化为标准报表。

PPT 批量生成:给每个客户生成定制化方案 PPT(变量:客户名/行业/推荐方案)、周会数据汇报 PPT 每周自动从数据库取数更新。

三条路径怎么选:一张决策图

选择框架 · 匹配你的真实场景

三条路径没有好坏之分,只有是否匹配当前场景。判断维度只有两个:第一,这个任务需不需要读取本地文件或处理真实数据?第二,是一次性出文件,还是需要批量重复?

三条路径选择决策图 需要 Office 文件 内容可以全部文字描述给 AI? 路径② Claude 网页 直接出成品 很多场景无需 Word 适合:快速报告/分析/简报 否(需读本地文件) 需要批量生成(多份文件)? 单次 路径① VBA 宏 Office 内置,零安装 适合:格式化单文件生成 批量 路径③ Claude Code python-docx/pptx 适合:定期批量生产 VBA 也可做简单批量;路径选择不是非此即彼,可以从路径①②起步,规模扩大后迁移到路径③

两个问题定路径:内容能否全文字描述 + 是否需要批量生成

这三条路径在实际工作中通常是从左到右逐步迁移的。新需求出现时,先用路径二(Claude 网页)快速验证内容框架和输出质量;如果结果不错但需要 .docx 格式,用路径一(VBA)把格式做好;如果同样的事情要每月重复、每次处理几十份,就用路径三(Claude Code)彻底自动化。路径不是对立的,而是同一个任务在不同规模下的自然演进。

重新理解 Office:它不是你工作的终点,而是 AI 的输出格式之一

你花了多少年在 Word、Excel、PPT 里做重复的格式调整?这些时间不是被工作消耗的,是被工具的使用方式消耗的。当你意识到 Office 文件底层是代码,当你第一次看到 AI 生成一段 VBA 宏然后一份格式完整的 Word 报告出现在桌面上,你和这些工具的关系就永久改变了——它们不再是你工作的终点,而是你用代码控制的输出格式之一。

接下来第 9 章:数据分析的另一层——当 AI 不只生成代码,而是帮你思考分析框架