Office 自动化一直是 Agent 的尴尬区。企业文件大量存在 Word、Excel、PowerPoint 里,但传统自动化要么依赖桌面 Office,要么用几套库分别处理 docx、xlsx、pptx,结构不统一,预览也麻烦。Agent 想稳定修改这些文件,不能只靠“生成一段 Python 试试”。
OfficeCLI 的思路更适合 Agent:把 Office 文件变成可读、可定位、可编辑的命令行对象。它强调单二进制、无 Office 安装、无依赖,支持 Word、Excel、PowerPoint 的读取、创建、修改和预览。对 Agent 来说,关键不是“能不能生成 PPT”,而是能不能用稳定路径定位到 slide、shape、cell、paragraph,再做可审计变更。
这会把 Office 文件从黑盒附件,变成 Agent 可以操作的结构化文档。
为什么不建议一上来写 Python 库
当然可以用 `python-pptx`、`openpyxl`、`python-docx`。问题是 Agent 每次临时写脚本,很容易出现单位换算错、元素定位不稳定、修改后样式丢失、PPT 预览不方便、三种文件格式三套 API。
OfficeCLI 用统一 CLI 把这些动作收起来。Agent 只需要执行命令、读取 JSON、按路径修改元素,可靠性会高很多。
安装和确认
先从 release 或官方安装方式获取二进制。安装后确认:
officecli --help建议给 Agent 准备一个单独工作目录:
mkdir -p ~/agent-office-lab
cd ~/agent-office-lab不要让 Agent 直接改原始合同、财务表、正式汇报。先复制一份:
cp ~/Downloads/report.pptx ./report-working.pptx创建一个最小 PPT
OfficeCLI 的命令式写法很适合 Agent。
officecli create deck.pptx
officecli add deck.pptx / --type slide --prop title="Q4 Report" --prop background=1A1A2E
officecli add deck.pptx '/slide[1]' --type shape \
--prop text="Revenue grew 25%" \
--prop x=2cm --prop y=5cm \
--prop font=Arial --prop size=24 --prop color=FFFFFF查看大纲:
officecli view deck.pptx outline预览成 HTML:
officecli view deck.pptx html对 Agent 来说,`outline` 用来理解结构,`html` 用来给人类快速检查,`get --json` 用来精确定位元素。
用路径定位元素
查看某个元素的 JSON:
officecli get deck.pptx '/slide[1]/shape[1]' --json后续修改就围绕这个路径进行,而不是让 Agent “猜第几个文本框”。
建议工作流:
1. 先 `view outline`。
2. 再 `get` 目标元素。
3. 修改元素。
4. 再 `view html` 预览。
5. 最后输出修改摘要。
Excel 和 Word 要加护栏
对 Excel,Agent 最容易误伤公式和格式。修改前要求它输出计划:
准备修改:
- Sheet: Revenue
- Range: B2:B13
- 动作:填入 2026 月度收入
- 不修改公式列 C、DWord 文档也一样,不要直接让 Agent “润色整个合同并保存”。更稳的方式是:
先列出所有标题和段落编号。
只修改第 3 节和第 5 节。
保留原文备份。
输出 diff 摘要。给 Agent 的文件规则
可以写进项目说明:
Office 文件修改规则:
1. 永远复制 working 文件,不直接改 original。
2. 每次写入前先输出目标路径和修改计划。
3. 不修改公式列、签名页、合同编号。
4. 修改后必须导出 outline 或 html 供检查。
5. 最终文件命名为 xxx-reviewed.pptx/docx/xlsx。OfficeCLI 的价值不在于炫技生成一页 PPT,而在于把 Office 文件变成 Agent 可验证、可回滚、可审计的操作对象。企业里真正需要的不是“自动做文档”,而是“自动改文档还能知道改了哪”。