上个月我用 Claude 整理季度数据时,碰到了一个麻烦事。AI 分析得头头是道,可一旦要把结果填进 Excel,就开始绕弯子——一会儿推荐用 python-docx,一会儿又让我手动复制。
说到底,AI Agent 处理文字、写代码都很顺,唯独一碰到 Office 文档就犯难。直到挖到 OfficeCLI 这个项目,问题才算有了说法。
这是个什么东西
OfficeCLI 是专门为 AI Agent 设计的 Office 命令行工具。一句话概括:能让 AI 直接用命令操控 Word、Excel 和 PowerPoint,无需安装 Office,也不用写一堆 Python 胶水代码。
项目托管在 GitHub 上,采用 Apache 2.0 协议,完全开源免费。发布的就是一个独立的可执行文件,.NET 运行时已打包在内,下载下来即用,不挑环境、不管依赖。macOS、Linux、Windows 都有对应的二进制包。
装起来有多简单
macOS / Linux 一条命令搞定:
curl -fsSL https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.sh | bash
Windows 则在 PowerShell 里执行:
irm https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.ps1 | iex
安装完成后,它会自动检测你电脑上是否装了 Claude Code、Cursor、Windsurf、GitHub Copilot 等工具,有的话直接把技能文件(SKILL.md)写进去。你的 AI 助手马上就知道该怎么调用 officecli 命令,免去手动配置的烦恼。
执行 officecli --version 确认一下版本号,正常输出就代表装好了。
AI Agent 接入只需一行
如果你的 AI Agent 是通过聊天框对话的,把这行粘贴进去就行:
curl -fsSL https://officecli.ai/SKILL.md
Agent 会自动读取这个文件,里面写明了所有命令用法和常见坑点,读完之后就能立刻开始创建、修改 Office 文档,无需额外说明。
下面是一次实机演示,展示 AI 使用 OfficeCLI 从零制作 PPT 的过程:

看一眼就能感受到,整个过程没有人工干预,AI 自己调用命令,一步步把幻灯片内容填充好。
能做哪些事
先看一个最简单的对比。以前用 Python 给 PPT 加一张幻灯片,大概要这样写:
from pptx import Presentation
from pptx.util import Inches, Pt
prs = Presentation()
slide = prs.slides.add_slide(prs.slide_layouts[0])
title = slide.shapes.title
title.text = "Q4 Report"
# ... 还有几十行 ...
prs.save('deck.pptx')
用 OfficeCLI,一条命令搞定:
officecli add deck.pptx / --type slide --prop title="Q4 Report"
这个差距对 AI Agent 来说尤其关键。命令越短,出错的概率越小,消耗的 token 也越少。
- Word 文档:支持段落、表格、样式、页眉页脚、图片、脚注、水印、目录、公式等,并有完整的多语言支持(含阿拉伯语、中日韩文字的 RTL 方向处理)。
- Excel 表格:能操作单元格和公式(内置 150 多个函数),支持数据透视表、条件格式、图表、切片器、命名范围、数据验证,还能直接导入 CSV。
- PowerPoint 演示:支持形状、动画、morph 过渡效果、3D 模型、图表、视频音频嵌入,连 Zoom 导航都内置了。
三种文档格式均支持读取、修改和从头创建。
几个用心的设计
三层架构,从简单到复杂
OfficeCLI 把操作分成三层:
- 第一层(L1)是语义级别的读取,用
view 命令输出文档大纲、纯文本、HTML 预览等。
- 第二层(L2)是元素级别的操作,通过
get、set、add、remove 等命令直接操作文档内的具体元素。
- 第三层(L3)是原始 XML,供需要底层操作的场景使用,相当于一个兜底方案。
对 AI Agent 来说,这个分层很实用:先用 L1 快速了解文档内容,需要改动时再切到 L2,不必一开始就整明白文档的 XML 结构,出错少很多。
路径寻址,让 AI 更容易导航
文档中每个元素都有固定路径,比如 /slide[1]/shape[2]。这是 OfficeCLI 自有的寻址方式,从 1 开始计数,不是标准 XPath。好处在于 AI 不用理解 Office 内部的 XML 命名空间,直接靠路径就能定位元素;万一出错,还能通过查可用元素自行修正路径。
自愈工作流
这个功能很实用。当 Agent 写了个无效路径,命令不会静默失败,而是返回结构化的 JSON 错误,附带修正建议。Agent 读到错误后可以自己调整,无需人工介入。
{
"success": false,
"error": {
"error": "Slide 50 not found (total: 8)",
"code": "not_found",
"suggestion": "Valid Slide index range: 1-8"
}
}
驻留模式和批量执行
对于需要批量修改大量元素的场景,有两种高效方式。
驻留模式(Resident Mode)把文档保留在内存里,连续操作不用反复开关文件,延迟极低:
officecli open report.docx
officecli set report.docx /body/p[1]/r[1] --prop bold=true
officecli set report.docx /body/p[2]/r[1] --prop color=FF0000
officecli close report.docx
批量模式(Batch Mode)把多条操作打包成 JSON 一次性提交,在一个打开/保存周期内全部执行完:
echo '[{"command":"set","path":"/slide[1]/shape[1]","props":{"text":"Hello"}},
{"command":"set","path":"/slide[1]/shape[2]","props":{"fill":"FF0000"}}]' \
| officecli batch deck.pptx --json
实时预览
用 watch 命令可以启动一个本地 HTTP 服务,在浏览器里实时看到 PPT 的渲染效果。每次执行 add、set、remove,浏览器自动刷新,调试时尤其方便,特别是 AI 在迭代调整样式的时候。
officecli watch deck.pptx
# 浏览器打开 http://localhost:26315
内置 MCP 服务
OfficeCLI 自带 MCP(Model Context Protocol)服务端,可注册给 Claude Code、Cursor、VS Code 等工具:
officecli mcp claude # 注册到 Claude Code
officecli mcp cursor # 注册到 Cursor
officecli mcp vscode # 注册到 VS Code
注册后,AI 工具可以通过 JSON-RPC 调用所有文档操作,无需通过 shell 命令。
跟其他方案比
很多人一遇到 Office 自动化,首先想到 python-docx 或 openpyxl。这些库本身不错,但有几个局限:只能在 Python 里用,如果你的技术栈是 Node.js、Go 或 Rust,那就得绕路;没有统一的命令行接口,AI Agent 不好直接调用,还得写包装代码;另外,三种格式要分别用不同的库,Word 一个、Excel 一个、PPT 又一个,版本依赖也得分开管。
LibreOffice 可以做无头渲染,但部署体积大,在容器环境里用起来麻烦,而且它的接口不是专门为 AI 设计的。Microsoft Office 的 COM 接口只能跑在 Windows 上,拿到 Linux CI/CD 环境下基本没戏。
OfficeCLI 的优势在于:单文件、零依赖,任何语言都能通过 subprocess 调用,输出统一是 JSON,在 Docker 里也能顺畅运行。当然,作为新项目,它的社区和文档相比老牌库还小不少,碰到极端场景可能需要自己啃 Wiki 或提 issue。
适合谁用
如果你正在搭建 AI Agent 的工作流,希望让 Agent 能自由读写 Office 文档,OfficeCLI 是目前我见过最直接的方案。
如果你在 CI/CD 管道里需要自动生成报告、填充模板,它也能胜任,毕竟不需要装 Office,在容器里跑得很顺畅。
如果你只是普通用户,不想碰命令行,可以看看同家出品的 AionUi,那款有图形界面,底层就用的 OfficeCLI。
如果你的场景特别复杂,比如要处理老版的 .doc 格式,或者需要精细控制 VBA 宏,这个工具目前可能覆盖不到,还是得另寻他路。
GitHub:https://github.com/iOfficeAI/OfficeCLI