OfficeCLI 使用教程

22K Star 开源 Office 自动化 CLI,让 AI 直接生成 Word/Excel/PPT

⭐ 开源免费

📖 项目简介

OfficeCLI 是 iOfficeAI 团队开源的一套专门为 AI Agent 设计的 Office 命令行工具, 用 C# 编写,Apache 2.0 协议。2026 年 3 月开源,四个多月拿下 22.4K Star、1.5K Fork。 它的目标很直接:用一行命令,让任意 AI 助手完整地读、写、改 Word、Excel 和 PowerPoint 文件。

技术上有三个关键设计。第一是单文件自包含二进制——.NET 运行时已经嵌进可执行文件里, 所以不用装 Office、不用装 Python 库、不用装任何运行时,下载一个文件就能跑,Windows / macOS / Linux 全平台通用。 第二是自带高保真 HTML 渲染引擎,这是它最核心的差异点:它能把 .docx / .xlsx / .pptx 渲染成 HTML 或逐页 PNG, 等于给 AI 装上了眼睛——模型不再靠猜 XML 结构,而是渲染出来看一眼,发现标题溢出、图形重叠就自己改,形成「渲染 → 看 → 修」的闭环, 而且因为渲染内置在二进制里,这个闭环在没有显示器的服务器、CI 流水线和 Docker 容器里同样成立。 第三是三层架构:L1 语义视图(outline / text / issues)、L2 DOM 元素操作(get / set / add / move)、 L3 原始 XML 兜底(raw / raw-set),让 Agent 从最省 token 的读法开始,只在必要时才深入。

和 Codex 的关系是直连的:装完执行一次自安装,它会自动探测本机的 AI 编程工具——Codex、Claude Code、Cursor、VS Code Copilot 等—— 并把技能文件写进对应配置目录;也可以一条命令把自己注册成 MCP 服务,让所有文档操作以标准工具的形式暴露,连 shell 权限都不用给。 配好之后,你在 Codex 里说一句「读这份表格,做一份季度汇报 PPT,做完渲图检查排版」, 它就能自己建文件、填内容、算公式、渲图自查、修版式,全程不用你打开 Office。

核心亮点

👀
自带渲染引擎,让 AI 看得见
把文档渲成 HTML 或逐页 PNG,模型看图自查排版,标题溢出、图形重叠自己修;在无显示器的服务器、CI、Docker 里同样能跑。
📦
单文件零依赖,不装 Office
运行时已嵌入二进制,不需要 Office、不需要 Python 库、不需要另装 .NET,Windows / macOS / Linux 的 x64 与 ARM64 都有现成包。
🧮
350+ 函数与原生透视表
写入公式即自动求值,读回来就是算好的值;一条命令生成原生 OOXML 透视表,Excel 打开时聚合结果已经在里面。
🔌
一条命令接进 AI 工具
内置 MCP 服务,自动探测并写入 Codex、Claude Code、Cursor、VS Code Copilot 的技能配置,装完即用,无需手工配置。

🧩 它能做什么、输出什么

项目说明
输入现有的 .docx / .xlsx / .pptx,或从零新建;CSV / TSV 导入 Excel;JSON 数据灌进模板;已有文档可 dump 成可重放的 JSON 蓝图
三格式能力Word、Excel、PowerPoint 三种格式均支持 读 / 改 / 新建,不是分三个库
适用类型Word:论文、报告、合同、带公式与图表的长文档;Excel:看板、预算、透视分析;PPT:路演、汇报、课件,含动画与转场
输出原生 Office 文件;结构化 JSON(每条命令都支持 --json);HTML 与逐页 PNG 渲染图;outline / text / annotated / stats / issues 文本视图
语言 / 兼容完整 i18n 与 RTL 支持(阿拉伯、希伯来等),CJK 分脚本字体槽与语言标记;Windows / macOS / Linux,x64 与 ARM64
调用方式命令行直调、MCP 服务、Python SDK、Node SDK、常驻模式(命名管道,免去每次启动进程)
协议Apache 2.0,开源免费,可商用

🖥️ 环境要求

环境建议配置
操作系统Windows 10 及以上、macOS(Apple 芯片与 Intel 均有包)、Linux;x64 与 ARM64 都提供现成二进制
运行环境无需任何运行时。单文件自包含,.NET 已嵌入二进制,不用另装 .NET / Python / Node
是否需要 Office不需要。渲染、公式求值、透视表生成全部内置,服务器和容器里也能跑
硬件普通办公电脑即可,无 GPU 要求;渲染 PNG 截图时会走一次无头浏览器,建议内存 4GB 以上
可选依赖仅「渲染成 PNG 截图」用到无头浏览器;从源码自行编译才需要 .NET 10 SDK(编译产物依旧是自包含二进制)
配置位置用户目录下的 .officecli/config.json;后台自动更新可用 officecli config autoUpdate false 关闭

🚀 如何使用

💡
最省事的上手路径只有三步:用包管理器装二进制 → 执行一次自安装让它接入你的 AI 工具 → 直接在 Codex 里说需求。 下面第 3、4 步是想手工敲命令时的用法,只用 AI 调的话可以跳过。
1

安装二进制(三种方式任选一种)

它是单文件自包含程序,装完就能用,不需要预先准备任何运行时。用包管理器最省事:

bash # macOS / Linux:Homebrew brew install officecli # Windows:Scoop scoop install officecli # 任意平台:npm(会自动拉取对应平台的原生二进制) npm install -g @officecli/officecli # 验证装好了 officecli --version

不想用包管理器,也可以在 GitHub 搜索 OfficeCLI,进入 Releases 页面手动下载对应平台的文件: Windows 选 officecli-win-x64.exe,macOS 苹果芯片选 officecli-mac-arm64,Intel 芯片选 officecli-mac-x64, Linux 按架构选 officecli-linux-x64officecli-linux-arm64。下载后执行一次 officecli install, 它会自己复制到 PATH。

2

让它自动接入你的 AI 工具

这一步是全套流程里最关键的:install 会探测本机已有的 AI 编程工具并写入技能文件, mcp 则把它注册成 MCP 服务。两条路选一条即可,MCP 的好处是不必给模型 shell 权限。

bash # 装二进制 + 自动写入检测到的 AI 工具技能文件 officecli install # 或者注册成 MCP 服务(按你用的工具选一条) officecli mcp claude # Claude Code officecli mcp cursor # Cursor officecli mcp vscode # VS Code / Copilot officecli mcp lmstudio # LM Studio # 查看注册状态 officecli mcp list
命令作用
install复制二进制到 PATH,并把技能文件写进检测到的所有 AI 工具(Codex、Claude Code、Cursor、Copilot 等);也可只装某一个,如 install claude
mcp <目标>注册为对应工具的 MCP 服务,所有文档操作以标准工具形式暴露
mcp list查看当前注册到了哪些工具
config读写配置,例如关闭后台自动更新:officecli config autoUpdate false
3

基础用法:手工做出一份 PPT

元素用「路径」定位,比如第 1 页的第 1 个图形就是 /slide[1]/shape[1],从 1 开始编号。跑通下面五条命令就掌握了核心套路:

bash # 1. 新建(类型由扩展名决定,换成 .docx / .xlsx 同理) officecli create deck.pptx # 2. 加一页,带标题和背景色 officecli add deck.pptx / --type slide --prop title="Q4 业绩汇报" --prop background=1A1A2E # 3. 在第 1 页放一个文本框 officecli add deck.pptx '/slide[1]' --type shape \ --prop text="营收同比增长 25%" --prop x=2cm --prop y=5cm \ --prop size=28 --prop color=FFFFFF # 4. 看结构(纯文本,最省 token) officecli view deck.pptx outline # 5. 渲成图片自己看排版对不对 officecli view deck.pptx screenshot -o preview.png

常用命令说明:

命令作用
create新建空白 docx / xlsx / pptx,类型由扩展名推断
view查看内容,模式有 outline(结构)、text(纯文本)、annotated(带标注)、stats(统计)、issues(问题清单)、htmlscreenshot
add / set / remove增改删元素,属性一律用 --prop 名=值 传;add --from <路径> 可克隆现有元素
get / query读单个元素或按条件筛选,加 --json 拿结构化结果;--depth N 控制层数
validate按 OpenXML 规范校验文件是否合法
open / save / close常驻模式:文档留在内存里,多步操作免去反复启动进程;save 刷盘,close 刷盘并释放
help不确定属性名就查内置帮助,如 officecli help pptx set shape

尺寸支持 2cm / 1in / 72pt / 96px,颜色支持 FF0000 / red / rgb(255,0,0) / accent1 主题色,写起来比直接改 XML 直观得多。

4

进阶:公式、透视表、模板批量、实时预览

这几个是它区别于普通文档库的地方,尤其是模板合并——设计一次版式,后面灌数据几乎不花 token。

bash # 写公式,自动求值:读回来就是算好的数 officecli set sales.xlsx '$Data:F2' --prop formula="=SUM(B2:E2)" officecli get sales.xlsx '$Data:F2' --json # 一条命令生成原生透视表(Excel 打开时聚合已经算好) officecli add sales.xlsx '/Sheet1' --type pivottable \ --prop source='Data!A1:E10000' --prop rows='Region,Category' \ --prop cols=Quarter --prop values='Revenue:sum,Units:avg' # 模板合并:把模板里的占位符替换成 JSON 数据,批量出文件 officecli merge invoice-template.docx invoice-001.docx \ --data '{"client":"Acme","total":"5200"}' # 批量操作:默认原子执行,任何一条失败整批回滚 officecli batch deck.pptx --input updates.json --json # 边改边看:启动实时预览,浏览器自动刷新(默认端口 26315) officecli watch deck.pptx
⚠️
用了常驻模式后,磁盘写入是延迟的。如果接下来要用别的程序读这个文件(Word 打开、Python 读取、上传交付), 先执行 officecli save 文件名 刷盘,或者用 close 刷盘并释放,否则读到的还是旧内容。
5

结合 Codex 使用

第 2 步做完就已经通了。走技能文件的话,install 会把技能说明写进检测到的 Codex 配置目录, Codex 直接按命令行调用;走 MCP 的话,注册后所有文档操作以 JSON-RPC 工具暴露,模型不需要 shell 权限,更适合团队环境。

接下来就是正常对话。比如直接说:「读一下这份 xlsx,按里面的数据做一份 12 页季度汇报 PPT,配色用深蓝,做完渲成图检查排版」。 它会自己走完 新建 → 加页填内容 → 算公式 → 渲图查看 → 发现标题溢出就改字号 这一整套,中间不用你插手。

能自愈的关键在于 view issuesvalidate:它们会返回结构化错误码和修复建议 (比如页码超范围会直接告诉你有效范围是 1 到 8,属性名写错会给出最接近的正确写法), 所以 Agent 能自己纠错,你不用盯着它一步步确认。

🎯 典型应用场景

📑
周报月报自动化
从数据库或接口取数,直接生成带图表的 Word 报告和 Excel 看板,不用每周手工复制粘贴。
🎤
一句话出汇报 PPT
把要讲的内容丢给 AI,它排好版式、配色、留白,渲图自查后交付,改一版只要再说一句话。
✍️
合同发票批量生成
模板里留占位符,用模板合并灌 JSON 数据,几百份文件版式完全一致,还不消耗模型 token。
🧮
Excel 看板与透视分析
公式写入即求值,透视表一条命令生成,趋势图、柱状图、条件格式、切片器都能自动配好。
🤖
CI 流水线产出文档
渲染内置、无需 Office,在 Docker 和无显示器的服务器里也能把测试结果自动写成报告。
🔍
交付前文档质检
用问题清单枚举文字溢出、公式错误、缺失替换文本、缺图片说明,交付前先自查一遍。

📈 实力与同类对比

维度表现
热度与增速2026 年 3 月中开源,四个多月累计 22.4K Star、1.5K Fork,仓库仍在高频更新
安装体积与依赖单文件自包含,运行时已嵌入;无需 Office、无需 Python 库、无需另装 .NET
Excel 计算能力350+ 内置函数写入即求值,覆盖动态数组溢出、查找引用、财务与债券、统计分布与回归、日期文本族
对比 python-docx / openpyxl过去建一页 PPT 要几十行 Python 加三个库,现在一条命令;且这些库不能渲染预览,也没有跨三格式统一的路径寻址
对比 LibreOffice 无头模式LibreOffice 能无头转换,但没有面向 AI 的结构化 JSON 输出、没有路径寻址、没有模板合并与可重放蓝图
对比 Office 本体Office 要付费授权、只能在 Windows / macOS 上通过 COM 或加载项自动化,服务器和容器里跑不了
多步操作延迟常驻模式通过命名管道复用进程,连续几十条修改不必反复启动程序
🧠
原理其实一句话:每个元素都有稳定路径(如 /slide[1]/shape[2]),命令行只负责按路径改 OOXML, 改完由内置渲染引擎出图让模型自己看。所以它既省 token(不用把整份 XML 喂给模型),又能自愈(看得见就改得对)。

常见问题

Q: 和 python-docx、openpyxl 这些库比,区别在哪?

三点差别。一是不用写代码,一条命令一次修改,任何语言、任何 Agent 都能调; 二是能渲染,那些库只能改数据结构,看不到成品长什么样,而它能出 HTML 和 PNG 让模型自查; 三是三种格式统一寻址,Word、Excel、PPT 都用同一套路径语法和命令,不用记三个库的三套 API。

Q: 真的完全不用装 Office 吗?

不用。它是从零实现的一整套引擎——文件读写、公式求值、透视表生成、版式渲染都在二进制里, 所以在没装 Office 的 Linux 服务器、Docker 容器、CI 流水线里同样能生成和渲染文档。 只有极少数功能(比如重算 Word 的目录页码)在 Windows 上会优先借用本机 Word,没有的话也有无头 HTML 兜底方案。

Q: 支持哪些格式和平台?

格式支持 .docx.xlsx.pptx,三者都可读、可改、可新建。 平台覆盖 Windows、macOS(Apple 芯片与 Intel)、Linux,x64 与 ARM64 都有现成二进制。 通过插件还能扩展到旧版 .doc.hwpx 以及导出 PDF。

Q: 命令跑完了,为什么别的程序读到的还是旧内容?

这是最容易踩的一个坑。常驻模式为了性能会延迟写盘,它自己的读取命令总能看到最新状态,但外部程序不行。 解决办法是在交给外部程序之前执行 officecli save 文件名 刷盘,或用 close 刷盘并释放; 如果是每条命令后都有别的程序读,可以把环境变量 OFFICECLI_RESIDENT_FLUSH 设为 each

Q: 报 not_found、invalid_value 这类错误怎么排查?

它的错误是结构化的,除了错误码还会带修复建议和有效取值范围,属性名拼错会直接告诉你最接近的正确写法。 自己排查的话有两招:用 officecli get 文件 /父路径 --depth 1 --json 看当前有哪些子元素、路径该怎么写; 用 officecli help pptx set shape 这类内置帮助查某个元素能设哪些属性,别靠猜。

Q: AI 生成的 PPT 排版乱、文字溢出怎么办?

这正是它设计渲染引擎要解决的问题。让 Agent 生成后执行 view 文件 screenshot 渲成图片自己看一眼, 或者执行 view 文件 issues --json 直接拿到问题清单(文字溢出、图形重叠、公式错误、缺替换文本), 然后按清单逐条改。相当于交付前先自检一遍。

Q: 要批量出几百份文档,怎么做才不烧 token?

模板合并:让 AI 精心设计一次版式做成模板,把要变的地方写成占位符, 之后由脚本用 JSON 数据批量填充。设计一次是贵的,填充 N 次几乎零成本,而且每份版式完全一致—— 比让模型每份都从头重新生成靠谱得多。多步修改则用批量模式一次提交,默认原子执行,有一条失败整批回滚。

Q: 有图形界面版吗?不想敲命令。

有。同团队还开源了一个叫 AionUi 的桌面应用,底层就是用它,界面里用自然语言描述需求即可, 适合不想碰命令行的人。链接在文首的折叠块里。

Q: 它会不会偷偷联网上传我的文档?

不会。文档的读写、渲染、计算全部在本机二进制里完成,不依赖任何云端服务,也不需要注册账号或 API Key。 唯一的联网行为是后台检查新版本,不放心可以执行 officecli config autoUpdate false 直接关掉。

Q: 可以商用吗?

可以。Apache 2.0 协议,允许商业使用、修改和二次分发,只需保留版权声明和许可证文件。 用 C# 编写,从源码编译需要 .NET 10 SDK,但编译产物仍是自包含二进制。