OfficeCLI:让 AI Agent 直接读写 Word
AI 自动化读写 Word/Excel/PPT 的新方式
写一段 Python 来生成 PPT,需要装 python-pptx;处理 Excel 又得切到 openpyxl;Word 又得引入 python-docx。三个库各有各的抽象,循环、坐标、样式还得各自摸索一遍。最麻烦的是:跑完之后想看看排版对不对,本地没装 Office 就只能盲改。
OfficeCLI 把这条路换掉了。它是一个 7k Star 的开源项目(Apache 2.0),把自己定位成「第一个专门给 AI Agent 用的 Office 套件」,把 Word/Excel/PowerPoint 的读写操作封装成统一的 CLI 命令,并自带一个不依赖 Office 的渲染引擎。

它是什么
OfficeCLI 是 iOfficeAI 团队在 2026 年 3 月开源的项目,主仓库地址为 [github.com/iOfficeAI/OfficeCLI](https://github.com/iOfficeAI/OfficeCLI)。整个工具是一个自包含的单文件二进制(.NET 运行时已嵌入),不用装 Office、不用装 Python、不用 npm install。下载下来直接跑 officecli --version 就能用。
它支持的格式与能力如下:
| 格式 | 读 | 改 | 创建 |
|------|----|----|------|
| Word (.docx) | ✅ | ✅ | ✅ |
| Excel (.xlsx) | ✅ | ✅ | ✅ |
| PowerPoint (.pptx) | ✅ | ✅ | ✅ |
三种格式用同一套命令、同一套路径表达、同一套 JSON 输出来操作,这是它和 python-docx / openpyxl / python-pptx 三个库分别学最大的区别。
officecli add deck.pptx / --type slide --prop title="Q4 Report"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它解决什么问题
我用一个真实场景说明。给一个 PPT 加一张幻灯片,传统 Python 写法至少 50 行:导入库、初始化 Presentation、拿 slide_layouts、找 title placeholder、设 text、还得算 Inches/Pt 单位、调字体、改位置……光是把「标题 + 一个文本框」跑起来就够写一屏。
OfficeCLI 的版本是一条命令:
接下来加一个文本框:
命令里直接写 2cm、5cm,单位都不用换算。/slide[1] 是 OfficeCLI 自己的路径语法(1-based 索引、元素本地名),不是 XPath。这套语法在 Word、Excel、PowerPoint 三种格式之间是统一的,比如 /body/p[5]、/Sheet1/row[3] 都能用。
officecli view deck.pptx outline # 列出所有幻灯片标题和内容 officecli view budget.xlsx text # 表格内容当文本读 officecli view report.docx html # 渲染成 HTML 文件 officecli view deck.pptx screenshot # 输出 PNG 截图(用 headless 浏览器)
三个层次,按需深入
OfficeCLI 的命令设计分成三层,处理复杂问题时不会一下把你拍晕在墙上:
L1:只读视图层。 用 view 命令把文档渲染成人类或 AI 容易消化的形式。
L2:结构化操作层。 用 get / add / set / remove / move 直接操作 DOM 节点,每个元素都有稳定的路径(/slide[1]/shape[2])。
L3:原始 XML 层。 L2 表达不了的边角情况,用 raw / raw-set 直接对 OOXML 走 XPath。这一层是兜底,平时用不到。
这种分层对 AI Agent 特别友好:先看视图,发现问题,再做结构化修改,遇到不支持的属性就回退到原始 XML。view screenshot 模式输出 PNG,多模态的 Agent 可以直接「看」自己做的 PPT 长啥样。

内置的两个引擎
渲染引擎是 OfficeCLI 最有特色的部分。它不依赖 Microsoft Office 就把 .pptx / .docx / .xlsx 渲染成 HTML 或 PNG,原理是内置一套从零写的渲染器,覆盖 shapes、charts、equations(OMML → MathJax)、3D .glb 模型(Three.js)、morph transitions 等。
officecli watch deck.pptx 会在本地起一个 HTTP 服务(默认端口 26315),浏览器打开后,每执行一次 add / set / remove 命令,浏览器里的预览会自动刷新。这一点对调试特别有用:以前用 python-pptx 改完一行得关 PowerPoint 重新打开看,现在改完命令行就有反馈。
公式与透视表引擎处理 Excel 的计算。内置 150+ 个函数,写 =SUM(A1:A2) 进去,再 get 那个单元格,值就已经算好了,不用回 Office 重算。透视表用 add ... --type pivottable 一条命令就能创建,支持多字段行列、10 种聚合、showDataAs、日期分组、计算字段、Top-N 等。最终输出的是原生 OOXML 透视表,Excel 打开就能直接看到已填充的聚合结果。
officecli merge invoice-template.docx out-001.docx '{"client":"Acme","total":"$5,200"}'模板合并与批处理
如果你的工作流是「设计一个模板 → 用数据填 N 份」,merge 命令很合适。它把 .docx / .xlsx / .pptx 里的 {{key}} 占位符替换成 JSON 数据,支持段落、表格、文本框、页眉页脚、图表标题。
设计模板的「贵」操作 AI 只做一次,填数据的「便宜」操作留给人或者脚本。这个模式避免了 AI 每次都从头生成 N 份不同版式的报告。
batch 命令把多条操作合并到一次打开/保存周期里,多步编辑几乎不耗 IO。dump + batch 还能把现有文档转成可重放的 batch JSON,AI 读到的是结构化 spec 而不是原始 OOXML,方便基于样例做变体。

给 AI Agent 用
OfficeCLI 对 Agent 做了几件具体的事:
- 确定性 JSON 输出。 每条命令都支持 --json,错误也以 JSON 返回,含 code(如 not_found、invalid_value)和 suggestion。Agent 不需要正则解析 stdout,也不会被半截输出卡住。
- 自动安装。 跑一次 officecli install,它会扫描 ~/.claude、.cursor、.github/copilot 等已知配置目录,把 skill 文件分发过去。Claude Code、Cursor、VS Code Copilot、Codex 这些 Agent 装上就能用。
- MCP Server。officecli mcp claude 把所有文档操作注册成 MCP 工具,通过 JSON-RPC 暴露,Agent 不需要 shell 权限。
- 属性名自动纠错。 拼错 --prop 的属性名会返回最接近的正确拼写和有效值列表,Agent 能自己改对。
项目目前的一些局限:
- 项目 2026 年 3 月才创建,主仓库刚过 v1.0.112(2026 年 6 月 13 日发布),生态和成熟度还在快速迭代期。
- 自带渲染引擎覆盖了 Office 95% 以上的常见元素,但极端复杂的 SmartArt 动画、自定义 XML 部件仍需走 L3 原始 XML 兜底。
- Windows ARM64、Linux Alpine ARM64 这类小众平台的二进制 release 资源相对靠后更新。
curl -fsSL https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.sh | bashirm https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.ps1 | iexofficecli create deck.pptx officecli add deck.pptx / --type slide --prop title="Hello, OfficeCLI" officecli watch deck.pptx # 浏览器打开 http://localhost:26315安装与试用
一行命令安装(macOS / Linux):
Windows 用 PowerShell:
也可以直接从 [GitHub Releases](https://github.com/iOfficeAI/OfficeCLI/releases) 手动下载对应平台的二进制。第一次跑 officecli 会自动安装到 PATH。
装好之后用一组命令快速验证:
如果对 Office 文档做自动化是日常工作的一部分,OfficeCLI 提供了一种更直接的方式:CLI 替代 SDK,单文件替代三个库,AI Agent 替代写代码。仓库地址 [github.com/iOfficeAI/OfficeCLI](https://github.com/iOfficeAI/OfficeCLI),文档站点 [officecli.ai](https://officecli.ai)。
如果这篇文章对你有帮助,可以关注一下我的公众号「编码者视角」,我会不定期分享类似的开源工具发现。
关注「编码者视角」
如果这篇文章对你有帮助,可以关注一下公众号「编码者视角」,我会不定期分享类似的开源工具发现。
夜雨聆风