OPEN SOURCE · APACHE 2.0 · AI NATIVE
AI 自己做 PPT 和报表
OfficeCLI 实战指南 · 让 AI 像人一样打开 Word、Excel、PPT
让 AI 像人一样打开 Word、Excel、PPT,自己排版、自己检查、自己交付。过去要让 AI 生成一份像样的 PPT,得写 50 行 Python、调三个库、拼一堆字符串;现在,一条命令就能创建、修改、甚至「看见」整份 Office 文件——这就是 OfficeCLI,全球第一款专为 AI Agent 设计的命令行 Office 套件。
一、先说痛点:为什么 AI 到现在还做不好文档
大模型已经能写代码、做推理、画图,但让它交付一份真正能交差的 Office 文档,依然翻车连连。你大概率遇到过下面这些场景:
▸ 场景一:让它做季度汇报 PPT
它只会吐一坨 Markdown,或者生成一堆截图。真正的 .pptx 文件呢?动画、母版、对齐、配色全要人手动收尾。
▸ 场景二:让它整理一份财务 Excel
公式丢了、格式乱了、透视表根本建不出来。你以为它「会 Excel」,其实它只是会「说」Excel。
▸ 场景三:让它改一份合同 Word
它改完文本,却根本看不见自己排成什么样——标题溢出了吗?表格错位了吗?全靠你截图给它,它再猜。
问题不在于 AI 不够聪明,而在于缺少一只「能操作 Office、还能看见结果」的手。传统方案要么是 Python 脚本库(写起来繁琐、看不到效果),要么是装一个庞大的 Office(不能上服务器、不能进 CI),要么是商业 SDK(贵),要么是 SaaS(数据要上传、不能批量自动化)。
OfficeCLI 要补的就是这一块:单一二进制、零依赖、跨平台,让任何 AI 用一行命令掌控 Word、Excel、PowerPoint,并且能渲染出图让自己看。
二、它是什么:给 AI 装上「Office 双手」
一句话定位:OfficeCLI 是一个开源的命令行工具,把 Word、Excel、PowerPoint 的创建、读取、修改、分析能力,封装成 AI 友好的命令和 JSON。它不依赖微软 Office,不需要装 Python 环境,下载下来就是一个可执行文件,macOS、Linux、Windows 通吃。用 .NET 10 编写,但运行时已经内嵌进二进制——你不需要装任何运行时。
✓ 完全开源免费 Apache 2.0 协议,代码托管在 GitHub,可商用。 | ✓ 单一文件零依赖 .NET 运行时已内嵌,运行时无需任何环境。 |
✓ 不需要装 Office 服务器、Docker、CI 里都能跑,真正无头运行。 | ✓ 任意语言可调用 本质是 CLI,Python、Node、Shell、Go 都能用。 |
它处在什么位置?它不是又一个 Python 库,也不是又一个 SaaS 网站,而是一份能装进任何 AI Agent 工具箱的「Office 基础设施」:既轻(单文件),又强(内置渲染与公式引擎),还为 AI 量身定制(路径寻址 + JSON + 自愈错误码)。
三、核心杀手锏:给 AI 一双「看文档的眼睛」
这是 OfficeCLI 与 python-docx、openpyxl 这类库最本质的区别。传统的库只能读写 XML 结构,AI 生成的 PPT 到底标题有没有溢出、两个形状有没有重叠、图表对不对,它根本看不见——等于蒙着眼排版,全靠运气。
OfficeCLI 自研了一套从零开始的高保真 HTML 渲染引擎,覆盖形状、图表(趋势线、误差线、瀑布图、K 线、迷你图)、公式(OMML 转 LaTeX,用 KaTeX 渲染)、3D .glb 模型、morph 变形转场、缩放定位和各种形状效果。它能把文档渲染成 HTML 或 PNG,让多模态 AI 直接「看」到自己生成的成果,再决定怎么改。
于是形成了一个闭环:渲染 → 看一眼 → 修正。因为渲染引擎内置在二进制里,所以这个闭环在 CI、Docker、没有显示器的服务器上同样能跑——这是任何依赖「真 Office」或「桌面截图」的方案都做不到的。
officecli view deck.pptx html -o /tmp/deck.html
officecli view deck.pptx screenshot -o /tmp/deck.png
officecli watch deck.pptx
// view html 出独立网页(资源内联);screenshot 出每页 PNG 给多模态 AI 看;watch 开本地服务,边改边刷新预览。
四、30 秒上手:从安装到第一张幻灯片
安装只要一行(也支持 brew、scoop、npm):
# macOS / Linux
curl -fsSL https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.sh | bash
然后,创建一个 PPT,开实时预览,再加一张标题页——浏览器会立刻刷新:
officecli create deck.pptx
officecli watch deck.pptx
officecli add deck.pptx / --type slide --prop title="Hello, World!"
// 浏览器打开 http://localhost:26315,每条 add/set/remove 都会实时刷新。
五、五大核心能力
1* 三大格式,读、改、创全覆盖
Word:完整的国际化与 RTL 从右到左排版、段落、表格(虚拟列增删/移动)、样式、页眉页脚、图片、LaTeX 公式、Mermaid 图表、批注、脚注、水印、书签、目录、图表、超链接、分节、窗体域、内容控件、字段、修订追踪、文档属性。
Excel:单元格(含注音/假名)、350+ 函数自动求值、动态数组(FILTER/SORT/UNIQUE/XLOOKUP)、透视表、条件格式、图表(箱线图、帕累托、对数轴)、切片器、命名区域、数据验证、图片、迷你图、批注、自动筛选、形状、CSV/TSV 导入。
PowerPoint:幻灯片、形状(图案填充、模糊、高亮色)、图片(多种填充模式、亮度对比度、旋转)、表格(内置样式目录)、图表(饼中饼、主题色板)、动画(15 强调 + 16 退出预设)、转场(morph + 12 种 2013+ 预设)、3D .glb 模型、缩放定位、LaTeX 公式、Mermaid 图、主题、连接符、音视频、组合、备注、批注、SmartArt 往返。
2* 内置公式与透视表引擎
写一个 =SUM(A1:A2),立刻 get 单元格,值已经算好了——不用打开 Excel 重算。支持 spilling 动态数组(FILTER/SORT/UNIQUE/SEQUENCE/LET/LAMBDA/MAP)、VLOOKUP/XLOOKUP/INDEX/MATCH、金融与债券函数(XIRR/PRICE/YIELD/DURATION/COUPNUM)、统计分布与回归(NORM.DIST/T.TEST/LINEST),以及日期文本一族。透视表也能一条命令从源区域生成,写进 OOXML,Excel 打开时聚合结果已就位:
officecli add sales.xlsx /Sheet1 --type pivottable \
--prop source='Data!A1:E10000' --prop rows='Region,Category' \
--prop values='Revenue:sum,Units:avg' --prop showDataAs=percentOfTotal
3* 模板合并:设计一次,批量生成
AI 把版式设计好一次(贵),后续代码用 JSON 数据填 {{key}} 占位符 N 次(便宜、确定性、零 token)。占位符可跨段落、表格单元格、形状、页眉页脚、图表标题。再也不用每次都让 AI 从零重生成,避免「100 份报告 100 种排版」的灾难。
officecli merge invoice-template.docx out-001.docx --data '{"client":"Acme","total":"$5,200"}'
4* 往返 dump:从已有文档学习
给 OfficeCLI 一份人类做好的样例,dump 把整份文档(或任意子树:一个段落、一张表、一张幻灯片、样式部件)序列化成可重放的 batch JSON,AI 读结构化规格而不是原始 XML,改一改就能用 batch 重放出 100 个变体。完美衔接「我有个现成模板」和「帮我生成一堆」。
officecli dump existing.docx -o blueprint.json
officecli batch new.docx --input blueprint.json
5* 实时预览 + 常驻模式 + 原子批处理
watch 开本地服务,每次编辑即时刷新浏览器(Excel 的 watch 还支持单元格内编辑和拖拽图表);常驻模式把文档驻留内存,多步操作近零延迟;batch 默认原子化——一条失败全部回滚,也可选 --best-effort 保留成功部分。
六、三层架构:简单起步,按需深入
OfficeCLI 把能力分成三层,AI(和人)可以从最省 token 的只读视图开始,不够再往下挖,直到原始 XML 这个万能兜底。这种渐进式复杂度,是省 token、降出错率的关键设计。
配合路径寻址(每个元素都有稳定路径,如 /slide[1]/shape[2],1-based 索引)、统一的 --json 输出、结构化错误码 + 自动纠错建议(拼错属性名会返回最近匹配),AI 能在不理解 XML 命名空间的前提下精准操作文档,出错还能自我修正。
七、真实使用场景
说了这么多能力,它到底能用在哪?这些是最高频的场景:
▸ AI 一句话生成精美 PPT
用户描述需求,Agent 直接产出带配色、动画、图表的演示文稿,无需模板、无需人工调整——还能截图自查排版。
▸ 批量生成发票 / 合同 / 报表
设计一次模板,用 merge 把数据库里的成百上千条记录批量填入,版式始终一致,零 token 成本。
▸ 数据库 / API 自动出报告
把查询结果直接灌进 Excel 公式与透视表,或生成 Word 分析报告,全自动、可复现、可纳入夜间任务。
▸ CI/CD 文档流水线
把测试结果、构建摘要、性能报告自动生成文档;交付前用 validate + view issues 自动质检,有问题直接打回。
▸ 容器化无头环境
不依赖 Office、不需要图形界面,Docker 容器和云端服务器里稳定运行,是真正的无头方案——这是它与传统方案的最大分水岭。
八、同类产品深度对比(重点)
「让程序/AI 生成 Office 文档」这条路,市面上其实有五条成熟的走法。先把全景看清楚,再逐个对比,你才能明白 OfficeCLI 到底强在哪、又在哪些场景该让位给别人。
8.1 全景:五条路与第六条路
OfficeCLI 不是要替代上面任何一条路,而是把脚本库的轻、商业 SDK 的强、SaaS 的「看效果」三者合并,再补上 AI 原生和无头这两块缺失的拼图。
8.2 综合能力矩阵
8.3 vs Python 三剑客(python-docx / openpyxl / python-pptx)
对方优势:免费、Python 生态熟悉、做简单任务上手快。
对方短板:三个库分开装、能力割裂(python-docx 做不了复杂图表,python-pptx 渲染要靠真 PowerPoint,openpyxl 不渲染);要管 Python 环境和依赖;没有任何「渲染看效果」;不是为 AI/JSON 设计——AI 得调 API 写 Python 代码,而不是发一条命令;跨语言能力差。
OfficeCLI 的回应:单二进制三合一、内置渲染、CLI+JSON 任何语言可调、路径寻址对 AI 友好,把「写 50 行 Python」压成「一条命令」。
8.4 vs 微软 Office(COM / Interop / Office.js)
对方优势:保真度最高,毕竟就是 Office 本身。
对方短板:COM/Interop 必须装 Office、基本只能 Windows、不能无头跑服务器(微软许可证明确不允许服务器端自动化);Office.js 是给客户端写插件的,不是用来无头生成的。
OfficeCLI 的回应:免装 Office、无头、跨平台、CI/Docker 友好。代价是极少数冷门特性可能不如真 Office 还原。
8.5 vs LibreOffice 无头模式
对方优势:免费、能转换和渲染、支持格式多。
对方短板:UNO API 复杂古怪、与 MS Office 保真度有差距、安装包大(约 1GB)、进程启动慢、命令行主要是「格式转换」而非精细的元素级编辑、不是为 AI/JSON 设计。
OfficeCLI 的回应:轻量单文件、AI 原生、精细的元素级编辑(增删改查任意元素)、自研渲染引擎保真度更高。
8.6 vs 商业 SDK(Aspose / Spire.Office)
对方优势:成熟、功能极全(邮件合并、PDF 转换、渲染、复杂报表)、跨平台多语言、有企业级支持。
对方短板:闭源、授权费高昂(按开发者/站点/OEM 收费,企业级年费动辄数千美元起)、不是 AI 原生(没有路径寻址、没有 agent 友好的 JSON CLI、没有自愈错误码)、渲染是给程序看的,不是给多模态 AI 看的闭环。
OfficeCLI 的回应:开源免费、AI 原生设计、渲染闭环。客观说,Aspose 在企业报表与格式转换的成熟度上仍领先,OfficeCLI 更适合 AI Agent 驱动的新场景。
8.7 vs 云端 API(Google Workspace / Microsoft Graph)
对方优势:托管、易于团队协作、与云端生态集成。
对方短板:要联网 + 鉴权 + 云账号、有配额与限流、数据离开本机(合规与隐私问题)、本地/离线/CI 场景受限、调试链路长。
OfficeCLI 的回应:本地运行、数据不出本机、无配额、CI/Docker 友好,适合对数据主权和离线有要求的场景。
8.8 vs AI 演示 SaaS(Gamma / Beautiful.ai / Tome / Canva AI)
对方优势:零代码、一句话出漂亮结果、设计感强、上手门槛极低(Gamma 以速度见长、Beautiful.ai 以品牌一致性见长、Tome 以叙事见长)。
对方短板:闭源 SaaS、按席位订阅、产出锁在人家平台(导出受限且常丢格式)、不能程序化批量、不能塞进 CI、基本只做 PPT 不管 Excel/Word 全链路、数据要上传。
OfficeCLI 的回应:它是给开发者/Agent 用的基础设施,能批量、能 CI、三格式通吃、数据本地。它不是要替代 Gamma 的「一键美化」,而是让你拥有自己的文档生成管道。
8.9 选型建议:什么情况选什么
一句话总结:追求极致保真和企业报表成熟度,选商业 SDK;想要云端协作,选云 API;想零代码出漂亮 PPT,选 SaaS;但如果要让 AI Agent 自动、批量、无头地干活,还能自查排版——目前只有 OfficeCLI 一条路把这几件事一次凑齐,而且开源免费。
九、和你的 AI 工具无缝集成
OfficeCLI 内置 MCP Server,一条命令就能注册到主流 AI 工具,把所有文档操作暴露成 JSON-RPC 工具,无需 shell 权限:
officecli mcp claude
officecli mcp cursor
officecli mcp vscode
更省心的是 officecli install 会自动检测本机的 Claude Code、Cursor、Copilot 等工具,把 skill 文件一键装好,开箱即用。开发层面则提供了轻量的 Python 与 Node.js SDK,走常驻管道,避免每次调用都拉起进程:
# Python: pip install officecli-sdk
import officecli
with officecli.create("deck.pptx") as doc:
doc.send({"command":"add","parent":"/","type":"slide"})
// Node.js 对应 npm install @officecli/sdk,API 风格一致,缺二进制时会自动下载。
十、现在就开始
挑一种你顺手的方式安装:
# 任选其一
curl -fsSL https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.sh | bash
brew install officecli
npm install -g @officecli/officecli
装完直接对你的 AI 助手说一句「帮我用 officecli 做一份关于 XX 的 PPT」,或者把官方 skill 文件喂给它:
curl -fsSL https://officecli.ai/SKILL.md
不想碰命令行?还有桌面 GUI 应用 AionUi,用自然语言描述需求即可创建和编辑 Office 文档,底层正是 OfficeCLI。
让 AI 真正「会做文档」
开源 · 单二进制 · 内置渲染引擎 · 三格式全覆盖 · AI 原生
GitHub 搜 iOfficeAI/OfficeCLI
夜雨聆风