天下苦绘图久矣!让 AI 帮助绘图曾经是个难题,但现在有了 OfficeCLI,这个遥不可及的梦想终于成真了。无论是做 PPT 结构图、流程图,还是 Word 报告、Excel 表格,OfficeCLI 都能让你用代码轻松搞定。更棒的是,它还能一键注册为 Claude Code 的 MCP 服务器,让 AI 直接调用 OfficeCLI 来生成文档,完全不需要手动操作。
一、安装
PowerShell 一键安装
# 在PowerShell中执行
irm https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.ps1 | iex
# 验证安装
officecli --version安装完成后,就可以在命令行中使用 officecli 这个强大的工具了。接下来,我们看看它是如何与 Claude Code 无缝集成的,以及一些基础的 CLI 指令示例。
二、注册到 Claude Code
OfficeCLI 提供了一个非常智能的功能:一键注册为 Claude Code 的 MCP 服务器。
# 一键注册 MCP 服务器
officecli mcp claude执行后,Claude Code 会自动获得操作 Office 文档的能力。你在对话中让 Claude “做个 PPT”、“整理成表格”、“导出报告”,它就能直接调用 OfficeCLI 来完成。不需要手动配置 JSON。
三、基础 CLI 指令
创建文件
# 创建一个测试PPT(默认宽屏 33.87cm × 19.05cm)
officecli create test.pptx --type pptx添加幻灯片
# 添加一张带标题的幻灯片,深色背景
officecli add test.pptx / --type slide --prop title="测试绘图" --prop background=2C3E50添加图形元素
# 在第二页添加一个带文字的矩形
officecli add test.pptx "/slide[2]" --type shape --prop text="Hello OfficeCLI" --prop x=2cm --prop y=5cm --prop width=10cm --prop height=3cm --prop size=24pt支持的各种 shape 类型:rect(矩形)、roundRect(圆角矩形)、ellipse(椭圆)、triangle(三角)、rightArrow(箭头)、star5(五角星)等。
添加文本框
officecli add test.pptx "/slide[2]" --type textbox --prop text="这是文本框" --prop x=2cm --prop y=8cm --prop width=10cm --prop height=2cm --prop size=14pt --prop bold=true --prop color=FF0000添加连接线(箭头)
# 直线箭头
officecli add test.pptx "/slide[2]" --type connector --prop shape=straight --prop x=5cm --prop y=3cm --prop width=0cm --prop height=3cm --prop color=333333 --prop tailEnd=triangle --prop lineWidth=2pt实时预览
# 启动预览服务器(会自动打开浏览器)
officecli watch test.pptx这个功能非常实用 —— 你每次执行 add / set 命令后,浏览器页面会自动刷新,实时看到效果。
查看文档结构
# 查看所有幻灯片
officecli query test.pptx slide
# 查看所有图形
officecli query test.pptx shape
# 查看所有连接线
officecli query test.pptx connector批量操作
# 通过JSON文件批量执行命令
officecli batch test.pptx --input commands.json四、智能体调用经验
在 Claude Code 尝试使用 officecli 做了个图后,我让他做了个经验总结,便于后续智能体调用时省点 token。
核心流程
OfficeCLI 操作 PPT 的本质是三步曲:
创建文件 → 添加元素 → 设置属性每添加一个元素,officecli 会返回一个路径,例如 /slide[1]/shape[@id=10000],后续修改通过这个路径定位。
Skill 模板:用 OfficeCLI 画论文结构图
如果你要让 AI 用 OfficeCLI 画 PPT 结构图,直接把下面的指令框架给 AI:
背景:你要用 officecli 生成一个 PPT 结构图
尺寸:PPT 宽 33.87cm,高 19.05cm(标准宽屏)
步骤:
1. officecli create output.pptx --type pptx 创建空白文件
2. officecli add output.pptx "" --type slide --prop layout="Blank" --prop background=FFFFFF 加一页空白
3. 对每个图形元素使用 batch 模式(批量操作),格式为 JSON:
{"op":"add","path":"/slide[1]","type":"shape","props":{...}}
常用 props 属性速查:
├── 位置大小: x, y, width, height(单位cm)
├── 几何形状: geometry = rect | roundRect | ellipse | triangle
├── 颜色填充: fill = RRGGBB(hex色值)
├── 文本内容: text, size, color, bold, font.ea(中文字体)
├── 对齐方式: align = left|center|right, valign = top|middle|bottom
└── 边距边框: margin = 0.3cm, line = "RRGGBB:宽度pt"
4. 添加连接线(箭头):
{"op":"add","path":"/slide[1]","type":"connector","props":{
"shape":"straight", "x":"起点cm", "y":"起点cm",
"width":"0cm", "height":"长度cm",
"color":"RRGGBB", "lineWidth":"2pt", "tailEnd":"triangle"
}}
注意:连接线是靠 start(x,y) → end(x+width, y+height) 定位的
向下箭头:width=0, height=正数
向右箭头:width=正数, height=0
5. 编辑完用 officecli save output.pptx 存盘踩坑记录
| 问题 | 解决方案 |
|---|---|
| 中文乱码 | 必须设置 --prop font.ea="Microsoft YaHei" 指定中文字体 |
| 路径错误 | Git Bash 下路径中的 / 会被转义,用 "" 空字符串代替根路径 |
| connector 方向不对 | connector 用偏移量定位:width=0 为垂直方向,height 正值=向下,负值=向上;height=0 为水平方向,width 正值=向右,负值=向左 |
| batch JSON 字段名 | 用 op 代替 add,用 props 代替 --prop,用 type 代替 --type |
| 预览不刷新 | 检查 officecli watch 是否仍在运行,重开即可 |
Batch JSON 的完整字段格式
让智能体先生成 Batch JSON,再用
officecli batch test.pptx --input commands.json可以一键修改 PPT,好处是方便在此前调整的基础上修改 PPT 结构。
{
"op": "add | set | remove | get | query",
"path": "/slide[N]",
"type": "shape | textbox | connector | slide",
"props": {
"x": "位置cm",
"y": "位置cm",
"width": "宽度cm",
"height": "高度cm",
"fill": "RRGGBB",
"geometry": "roundRect",
"text": "内容",
"size": "字号pt",
"color": "RRGGBB",
"bold": true,
"font.ea": "Microsoft YaHei",
"align": "center",
"valign": "middle",
"margin": "0.3cm",
"line": "RRGGBB:线宽pt",
"lineWidth": "2pt",
"tailEnd": "triangle"
}
}配色方案推荐
画技术架构图/论文结构图时,推荐这套蓝色系配色:
深蓝(主标题): 1A3A5C
章1(最深的蓝): 2E86C1
章2: 3498DB
章3: 5DADE2
章4: 85C1E9
章5(最浅的蓝): AED6F1
背景浅蓝: EBF5FB
强调色(橙色): F39C12
强调色(红色): E74C3C
正文深色: 2C3E50五、视觉反馈:AI 的”眼睛”
做 PPT 最头疼的一点是:AI 自己看不到做出来的图。没有视觉反馈,布局重叠、字体过小、颜色失衡这些问题,AI 完全不知道。怎么解决?
两种视觉反馈通道
根据 AI 模型的能力不同,有两种视觉反馈方案:
| 方案 | 适用模型 | 原理 | 精度 |
|---|---|---|---|
| HTML 结构化分析 | 纯文本模型(如 DeepSeek) | 导出 HTML,读取 DOM 元素坐标来检测布局 | 像素级精确 |
| 截图视觉识别 | 多模态模型(如 Claude、GPT-4o) | 直接看截图,像人一样判断 | 直观但定性 |
方案一:HTML 结构化分析(纯文本模型)
纯文本模型无法”看”图片,但可以通过 officecli view 导出 HTML,然后读取 DOM 元素的坐标数据来理解布局。
# 导出 HTML 预览
officecli view paper.pptx html > preview.htmlHTML 中每个元素都有精确的 CSS 坐标:
<!-- 从 HTML 中可以读到每个元素的 left, top, width, height -->
<div class="shape" style="left:28.35pt;top:102.05pt;width:164.41pt;height:90.71pt;">通过这些坐标,纯文本模型可以像读表格一样”看”布局,自动检测三类常见问题:
1. 重叠检测 — 计算两个元素的包围盒是否有交集
元素A底部 = topA + heightA = 102.05 + 90.71 = 192.76pt
元素B顶部 = topB = 212.6pt
间距 = 212.6 - 192.76 = 19.84pt (0.7cm) ✓ 无重叠2. 间距均匀性 — 检查所有同类元素的位置是否对齐
章1内容框 top=102.05pt, left=28.35pt
章2内容框 top=102.05pt, left=212.6pt ← top 一致,水平对齐 ✓3. 文字适配 — 计算文本高度是否超出容器
内容框文本区高度 = 90.71pt - 2×9.92pt(边距) = 70.87pt
4行文字需要 = 4 × 11pt × 1.4(行距) = 61.6pt
剩余 = 9.27pt ✓ 文字能完整显示方案二:截图视觉识别(多模态模型)
多模态模型可以用 officecli view 的截图模式,直接”看到” PPT 效果:
# 导出截图
officecli view paper.pptx screenshot --slide 1 -o slide1.png模型可以直接判断:
- 颜色是否协调
- 字体大小是否合适
- 整体视觉平衡感
- 装饰元素的美观度
迭代工作流
无论哪种方案,核心都是生成 → 反馈 → 调整的闭环:
创建 PPT → 导出预览(HTML/截图) → AI分析反馈 → 调整 JSON → 重新生成可以提示让模型在每轮迭代都关注不同维度:
- 第 1 轮:整体布局、元素是否存在
- 第 2 轮:间距、对齐、颜色一致性
- 第 3 轮:细节微调、装饰元素、视觉平衡
关键技术指标
分析 HTML 布局时,重点关注这些 CSS 属性:
| 属性 | 作用 | 检查要点 |
|---|---|---|
top | 元素顶部位置 | 同类元素是否一致 |
left | 元素左侧位置 | 水平对齐情况 |
width/height | 元素尺寸 | 内容是否适配 |
padding | 内边距 | 文字是否被裁剪 |
line-height | 行高 | 行数 × 行高 ≤ 内容区高度 |
border-radius | 圆角 | 与元素尺寸比例是否协调 |
这个”结构化视觉反馈”的方法,不仅适用于 PPT,对 Word 文档排版、Excel 图表布局同样有效。没有视觉模态的 AI,一样能做出视觉上合格的文档。
总结
OfficeCLI 最大的价值在于,它把 Office 文档操作变成了可编程的、AI 可调用的 API。
以前 AI 做 PPT 的方案,是生成 Python 脚本 → 调 python-pptx 库 → 慢慢调试。现在,officecli batch 一个 JSON 搞定,还能实时预览。
搭配 Claude Code 的 MCP 注册功能,直接跟 AI 说”把这个分析结果做成 PPT”,剩下的交给 OfficeCLI。
相关链接:
- OfficeCLI GitHub
- python-pptx(备选方案,更灵活但更繁琐)

