“让 AI 帮我做一份 PPT”——这件事听起来简单,做起来特别难。

不是模型不够聪明,是工具链不给力。你让 Agent 生成一份 .pptx,传统的路是写 Python:用 python-pptx 一行行拼 slide、shape、textbox,调字体、调颜色、调坐标。50 行代码下去,生成一个"标题 + 一句正文"的幻灯片。Agent 看不见自己生成出来长什么样,只能盲改——改完跑一遍,再盲猜哪里不对。

OfficeCLI 就是冲着这个痛点来的。

OfficeCLI 是一个用 C# 写的、专为 AI Agent 打造的 Office 套件,在 GitHub 上已有 22k star。它不需要安装 Microsoft Office,没有任何运行时依赖,能在任何机器上创建、读取、修改 Word、Excel、PowerPoint。并且内置了一套 HTML 渲染引擎,能把文档渲染成 HTML 或图片——让 Agent "看见"自己生成的内容,形成"渲染→查看→修改"的闭环。

上手体验

安装很简单,使用 x-cmd 一行命令就能搞定:

x install officecli

装完跑 officecli install,它会自动把 officecli 的 skill 装进检测到的 AI 编码 Agent(Claude Code、Cursor、Windsurf、Copilot 等)。之后直接对 Agent 说"帮我做一份 Q4 季报 PPT",它就能调这些命令把文档拼出来。

让 Agent 做 Office 文档,传统的路有多难

先看老办法为什么不适合 Agent。

一是太重。 python-pptx、openpyxl、python-docx 各管一种格式,Agent 要操作三种文档得装三套库、学三套 API。要是走 Office COM 自动化(Windows 上操控真的 Office),还得本机装好几个 G 的 Microsoft Office,根本没法在服务器、容器、CI 里跑。

二是没法闭环。 Agent 用 python-pptx 写完代码、生成文件,它不知道这份 PPT 长什么样。要"看一眼",得人去打开。这意味着 Agent 没法自己判断"这页字是不是溢出了"“配色是不是太丑”——它瞎着改,你瞎着 review。

这两点合在一起,就是 Agent 操作 Office 文档的真实困境:又重,又瞎。

OfficeCLI:给 Agent 一套命令式的 Office 工具

OfficeCLI 的思路是:把 Word、Excel、PowerPoint 的操作,全部变成命令行指令,Agent 像调 shell 工具一样调用它们。

officecli create deck.pptx
officecli add deck.pptx / --type slide --prop title="Q4 Report"
officecli add deck.pptx '/slide[1]' --type shape \
  --prop text="营收增长 25%" --prop x=2cm --prop y=5cm --prop color=FFFFFF
officecli view deck.pptx outline      # 看大纲
officecli get deck.pptx '/slide[1]/shape[1]' --json   # 拿结构化数据
officecli close deck.pptx

每一条命令对应一个原子操作:创建、添加元素、查看、读取、关闭。Agent 不用写 Python、不用装库,像拼乐高一样把文档拼出来。Word、Excel、PowerPoint 三种格式,同一套命令风格全覆盖。

真正的关键:它让 Agent "看见"自己生成的东西

这是 OfficeCLI 最该被关注的设计——它内置了一套 HTML 渲染引擎

文档生成完,Agent 不用再盲猜长什么样:

officecli view deck.pptx html     # 渲染成 HTML

更狠的是 watch 模式:

officecli watch deck.pptx         # 开一个 localhost:26315 的实时预览

你在另一个终端改文档,浏览器里的预览实时刷新。Agent 每做一次修改,立刻能看到效果。

这就形成了 OfficeCLI 反复强调的那个闭环:render → look → fix(渲染 → 查看 → 修改)。Agent 渲染出文档、看见它、发现哪里不对、再改、再看——它终于有了"眼睛"。

这个闭环为什么重要?因为一份好看的 PPT,靠的不是一次写对,是反复调整。没有视觉反馈,Agent 永远只能生成"能用"的文档;有了视觉反馈,它才可能生成"好看"的文档。

一个二进制,免装 Office(怎么做到的)

很多人会好奇:不装 Microsoft Office,它凭什么能读写 .docx/.xlsx/.pptx?

技术上的答案是:OfficeCLI 把文档格式解析和渲染,全部自己实现了。 Office 文件本质是 ZIP 包裹的 XML,OfficeCLI 直接解析和生成这些 XML,再用内置的 HTML 渲染引擎把文档画出来——既不依赖本机的 Office,也不依赖 .NET 的 Office 互操作。

它打包成单个自包含二进制,连 .NET 运行时都内嵌进去。意味着你在 macOS、Linux、Windows、容器、CI 服务器上,不用装任何东西,丢一个二进制进去就能跑。这对在无 Office 环境的服务器上批量生成文档、做文档处理流水线,是个关键优势。

从 50 行代码到一条命令

README 里有个很直观的对比。用 python-pptx 生成一页标题幻灯片:

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"
# ... 还有 45 行 ...
prs.save('deck.pptx')

OfficeCLI 里:

officecli add deck.pptx / --type slide --prop title="Q4 Report"

行数的差距是表象,真正的差距是:右边这条命令,Agent 一句话就能学会、能记住、能组合;左边那 50 行,Agent 每次都得查 API、拼参数。 命令式接口天生对 Agent 友好——这本来就是给它设计的。


你最想让 AI Agent 帮你做哪种文档?PPT、Word 还是 Excel?评论区说说你的场景。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐