OfficeCLI(官网 officecli.ai)是一个让 AI 智能体直接操作 Office 文档的开源命令行工具:单一二进制文件覆盖 Word/Excel/PPT 的读取、修改、创建、渲染、合并,每个命令都能输出 AI 友好的 JSON,天然适配智能体与自动化流水线。Apache 2.0 开源,自包含 .NET 运行时,零依赖安装。

设计理念:分层渐进式复杂度

区别于 python-docx / openpyxl / LibreOffice 等传统方案,OfficeCLI 按「智能体先看懂、再修改、最后才碰底层」的思路设计为三层抽象:

层 用途 典型命令 适用者
L1 视图层 内容语义化读取 view text / view html / view screenshot / view stats AI 先「看懂」文档
L2 DOM 层 结构化元素操作 get / query / set / add / remove / move 智能体或开发者编排修改
L3 原始 XML 层 XPath 直接访问,通用兜底 raw / raw-set / add-part 极端边缘场景

元素寻址基于稳定路径(如 /slide[1]/shape[2]),支持类 CSS 选择器查询:

officecli pptx query "/slide[*]/shape[@name contains 'logo']"
officecli docx query "/body/table/cell:contains('Q4')"
officecli xlsx query "/sheet[1]/cell[@value > 100]"

四大核心引擎

渲染引擎(让 AI「看见」文档)

多模态模型查看 PPT 的传统流程是「打开 PowerPoint → 导出 PNG → 喂给模型」,OfficeCLI 把渲染做进二进制里:

officecli pptx view html presentation.pptx        # 独立 HTML,资源内联
officecli pptx view screenshot presentation.pptx  # 按页输出 PNG
officecli pptx watch presentation.pptx            # 本地 HTTP 服务 + 自动刷新

覆盖形状、图表(趋势线/误差线/瀑布图/K 线图)、公式(OMML→MathJax 兼容转换)、3D 模型(.glb 经 Three.js)、morph 过渡与幻灯片缩放效果。

Excel 公式引擎与透视表

内置公式求值引擎,覆盖动态数组函数(FILTER / UNIQUE / SORT / SEQUENCE)、VLOOKUP、INDEX/MATCH、日期/文本函数等上百种,写入公式即自动求值,无需打开 Excel。OOXML 中动态数组函数的 _xlfn. 前缀自动处理:

officecli xlsx set "/sheet[1]/cell[A1]" --value "=VLOOKUP(D2, $B$2:$F$100, 3, FALSE)"

一条命令生成原生 OOXML 数据透视表,支持多字段、日期分组、showDataAs、排序、总计、分类汇总、计算字段:

officecli xlsx add "/sheet[1]" --type pivotTable \
  --source "$A$1:$G$200" --row "月份" --col "品类" --value "销售额" --value "利润"

模板合并(设计一次,批量生产)

AI 智能体设计一次 Office 版式(排版、配色、图表、样式),再以零 token 消耗的确定性操作批量生成变体:

# 模板中写 {{客户名}}、{{季度}}、{{营收}} 等占位符
officecli merge template.docx data.json --output report.docx

支持段落、表格单元格、形状文本、页眉页脚、图表标题中的占位符替换。

Dump 往返(让智能体学习现有排版)

导出整个文档为可重放的 batch JSON,智能体分析结构、修改后重放,即可批量生成相似变体:

officecli docx dump template.docx --output batch.json   # 导出结构
officecli docx batch batch.json --output variant.docx   # 修改后重放

三种格式覆盖亮点

  • Word:完整公式(OMML→MathJax)兼容、修订/追踪变更、内容控件 SDT、RTL/i18n 支持
  • Excel:公式求值引擎、数据透视表完整支持、丰富图表(箱线图/帕累托/对数轴)
  • PowerPoint:动画(15 种强调 + 16 种退出 + morph + 运动路径)、3D 模型、视频/音频、SmartArt 往返支持

AI 原生设计

  • 确定性 JSON 输出:每个命令支持 --json,schema 一致,对 LLM function calling 友好
  • 结构化错误码:not_found、invalid_value 等可编程错误码,属性名自动纠错,智能体可自愈式处理失败
  • 内置自检:officecli docx validate report.docx 验证文档结构,officecli docx view issues report.docx 列出潜在问题
  • MCP 一键注册:officecli install 自动检测并配置,或 officecli mcp register claude 指定注册,直接接入 Claude Code / Cursor / VS Code / LM Studio

安装与上手

# macOS / Linux
curl -fsSL https://officecli.ai/install.sh | bash
# Windows (PowerShell)
iwr -useb https://officecli.ai/install.ps1 | iex

自包含二进制,内嵌 .NET 运行时,支持 macOS (x64/ARM64)、Linux (x64/ARM64)、Windows (x64)。

officecli create docx myfile.docx          # 创建空白文档
officecli pptx add "/slide[1]" --type titleSlide --title "我的演示" --subtitle "自动生成的"
officecli pptx view html slides.pptx --output preview.html   # 查看效果

典型应用场景

  1. CI/CD 自动生成测试报告:预先用 AI 设计测试报告模板(含 logo、排版、图表占位符),CI 流水线中 officecli merge template.docx test_results.json 一行命令替代几百行 Python 报告脚本
  2. 数据库导出 Excel 周报:SQL 导出为 JSON → officecli merge weekly_report.xlsx data.json,模板中的公式和透视表一并保留
  3. AI 智能体按自然语言生成 PPT:create → 逐页 add 标题/内容/图表 → view screenshot 检查 → 微调排版 → 交付,全程无需打开 PowerPoint

对比主流方案

特性 OfficeCLI MS Office LibreOffice python-docx/openpyxl
开源免费 ✅ Apache 2.0 ❌ 付费 ✅ ✅
单一二进制零依赖 ✅ ❌ ❌ 需完整安装 ❌ 需 Python+pip
CLI 统一接口(语言无关) ✅ ❌ ❌ 仅 Python
AI 原生 JSON 输出 ✅ ❌ ❌ ❌
基于路径元素访问 ✅ ❌ ❌ ❌
内置渲染引擎 ✅ ❌ ❌ ❌
无头 HTML/PNG 输出 ✅ ❌ 部分 ❌
跨格式模板合并 ✅ ❌ ❌ ❌
Dump→batch JSON 往返 ✅ ❌ ❌ ❌
三种格式全覆盖 ✅ ✅ ✅ 需多个库

局限性

  • 目前仅支持 OOXML 格式(.docx / .xlsx / .pptx),旧版 .doc / .xls 需先通过其他工具转换
  • CLI 操作方式对不熟悉命令行的用户有学习门槛
  • 错误提示的友好程度还有提升空间

原文:小华同学ai 公众号《我解放啦,彻底起飞!!!OfficeCLI开源,openclaw 直接操作 word、ppt、excel,太丝滑》