- ❌ 需要 Python 环境
- ❌ 代码复杂(50 行 Python 完成一个简单 PPT)
- ❌ 无法渲染预览
- ❌ 公式不自动求值
- ❌ 需要安装 Office
- ❌ 仅限 Windows
- ❌ 复杂的 COM 调用
- ❌ 不适合服务器/容器环境
- ❌ 需要安装 LibreOffice
- ❌ 复杂的 API
- ❌ 渲染质量不一致
让任何 AI 智能体完全掌控 Word、Excel 和 PowerPoint——只需一行代码
> 开源免费、单一可执行文件、无需安装 Office、零依赖、全平台运行的 Office CLI 工具,让 AI 智能体完全掌控 Word、Excel 和 PowerPoint
官网:https://officecli.ai
开源协议:Apache 2.0
支持平台:macOS, Linux, Windows(x64, ARM64)
- 专为 AI 智能体设计
- 确定性 JSON 输出
- 基于路径的寻址
- 自愈式工作流
- 单一可执行文件
- .NET 运行时已内嵌
- 无需安装 Office
- 全平台运行
- 高保真 HTML 渲染
- 让 AI "看见"文档
- 支持截图、预览、watch
- 无需 Office
- 创建、读取、修改 Word、Excel、PowerPoint
- 公式自动求值(350+ 函数)
- 数据透视表生成
- 模板合并
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')
- ❌ 需要 Python 环境
- ❌ 代码复杂
- ❌ 无法渲染预览
- ❌ 公式不自动求值
- ❌ 需要安装 Office
- ❌ 仅限 Windows
- ❌ 复杂的 COM 调用
- ❌ 不适合服务器/容器环境
- ❌ 需要安装 LibreOffice
- ❌ 复杂的 API
- ❌ 渲染质量不一致
officecli add deck.pptx / --type slide --prop title="Q4 Report"
officecli view deck.pptx html -o /tmp/deck.html officecli view deck.pptx screenshot -o /tmp/deck.png officecli watch deck.pptx # http://localhost:26315
officecli add budget.xlsx '/Sheet1/A1' --type cell --prop formula='=SUM(A2:A10)'
officecli get budget.xlsx '/Sheet1/A1' --json
# → {"value": 4500, "formula": "=SUM(A2:A10)"}
# 创建空白 PPT officecli create deck.pptx # 创建带内容的 PPT officecli create report.docx --content "# Title\n\nThis is a report."
# 查看大纲 officecli view deck.pptx outline # 查看文本 officecli view report.docx text --max-lines 50 # 获取元素 officecli get deck.pptx '/slide[1]/shape[1]' --json
# 修改标题 officecli set deck.pptx '/slide[1]/shape[1]' --prop text="New Title" # 添加幻灯片 officecli add deck.pptx / --type slide --prop title="Q4 Report" # 删除元素 officecli remove deck.pptx '/slide[1]/shape[1]'
officecli view deck.pptx html -o /tmp/deck.html
officecli view deck.pptx screenshot -o /tmp/deck.png
officecli watch deck.pptx # 浏览器打开 http://localhost:26315 # 每次 add/set/remove 立即更新
- 让 AI "看见"渲染后的文档
- 不是凭 DOM 瞎猜
- 闭合"渲染 → 看 → 改"循环
officecli add budget.xlsx '/Sheet1/A1' --type cell --prop formula='=SUM(A2:A10)'
officecli get budget.xlsx '/Sheet1/A1' --json
# → {"value": 4500}
- 可溢出的动态数组(FILTER, SORT, UNIQUE, SEQUENCE, LET, LAMBDA, MAP)
- VLOOKUP / XLOOKUP / INDEX / MATCH
- 财务与债券函数(XIRR, PRICE, YIELD, DURATION, COUPNUM)
- 统计分布/检验/回归(NORM.DIST, T.TEST, LINEST)
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' \ --prop showDataAs=percentOfTotal
officecli merge invoice-template.docx out-001.docx --data '{"client":"Acme","total":"$5,200"}'
officecli merge q4-template.pptx q4-acme.pptx --data data.json
- 一次性设计版式(昂贵)
- 代码填充 N 次(廉价、确定、零 token 成本)
- 避免"每份报告都从头重生成"的失败模式
# 整个文档 officecli dump existing.docx -o blueprint.json # 任意子树 officecli dump existing.docx /body/tbl[1] -o table.json officecli dump existing.xlsx /Sheet1 -o sheet.json # 重放 officecli batch new.docx --input blueprint.json
- 智能体读结构化规格而不是原始 OOXML XML
- 修改后重放
- 打通"我有一份现成模板"和"给我生成 100 份变体"之间的链路
view(text、annotated、outline、stats、issues、html、svg、screenshot)get、query、set、add、remove、move、swapraw、raw-set、add-part、validate# 查看注释 officecli view report.docx annotated # 查看文本 officecli view budget.xlsx text --cols A,B,C --max-lines 50 # 查看大纲 officecli view deck.pptx outline
# 查询 officecli query report.docx "run:contains(TODO)" # 添加 officecli add budget.xlsx / --type sheet --prop name="Q2 Report" # 移动 officecli move report.docx /body/p[5] --to /body --index 1
# 查看 XML officecli raw deck.pptx '/slide[1]' # 修改 XML officecli raw-set report.docx document \ --xpath "//w:p[1]" --action append \ --xml '<w:r><w:t>Injected text</w:t></w:r>'
officecli mcp claude # Claude Code officecli mcp cursor # Cursor officecli mcp vscode # VS Code / Copilot officecli mcp lmstudio # LM Studio officecli mcp list # 查看注册状态
2. 完成 — OfficeCLI 自动检测您的 AI 工具(Claude Code、GitHub Copilot、Codex),通过检查已知配置目录并安装技能文件
- 每条命令都支持
--json- schema 一致
- 无需正则解析、无需抓 stdout
- 每个元素都有稳定路径(
/slide[1]/shape[2])- 智能体无需理解 XML 命名空间即可导航文档
- 智能体从只读视图入手
- 升级到 DOM 操作
- 仅在必要时降到 raw XML
- 最大限度节省 token
-
validate、view issues、以及结构化错误码- 返回 suggestion 和有效范围
- 智能体无需人工介入即可自纠错
-
view html / view screenshot / watch- 原生输出 HTML 和 PNG
- 无需 Office
- 智能体能"看见"自己的产出
- 在 CI / Docker / 无头环境里修复排版问题
- 350+ Excel 函数写入即自动求值
- 从源数据范围一条命令生成原生 OOXML 数据透视表
- 智能体立刻读到计算值和聚合结果
- 智能体一次性设计版式
- 下游代码把
{{key}} 占位符填充 N 次- 避免每份报告都烧 token 重生成
-
dump 把任意文档转成可重放的 batch JSON- 智能体通过读结构化规格学习人类范本
- 不是从原始 OOXML XML 反推
- 不确定属性名时,智能体跑
officecli set - 不靠猜
- OfficeCLI 自动识别您的 AI 工具
- 无需手动放 skill 文件
# macOS / Linux curl -fsSL https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.sh | bash # Windows (PowerShell) irm https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.ps1 | iex
# Homebrew(macOS / Linux) brew install officecli # Scoop(Windows) scoop install officecli # npm(全平台) npm install -g @officecli/officecli
# 1. 安装 curl -fsSL https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.sh | bash # 2. 创建一个空白 PowerPoint officecli create deck.pptx # 3. 启动实时预览 — 浏览器自动打开 http://localhost:26315 officecli watch deck.pptx # 4. 打开另一个终端,添加一页幻灯片 — 浏览器即时刷新 officecli add deck.pptx / --type slide --prop title="Hello, World!"
# 创建演示文稿并添加内容 officecli create deck.pptx officecli add deck.pptx / --type slide --prop title="Q4 Report" --prop background=1A1A2E officecli add deck.pptx '/slide[1]' --type shape \ --prop text="Revenue grew 25%" --prop x=2cm --prop y=5cm \ --prop font=Arial --prop size=24 --prop color=FFFFFF # 查看大纲 officecli view deck.pptx outline # 查看 HTML officecli view deck.pptx html # 获取任意元素的结构化 JSON officecli get deck.pptx '/slide[1]/shape[1]' --json
import subprocess
import json
# 1. 从数据库获取数据
data = fetch_report_data()
# 2. 创建文档
subprocess.run(['officecli', 'create', 'report.docx'])
# 3. 添加内容
subprocess.run(['officecli', 'add', 'report.docx', '/',
'--type', 'paragraph',
'--prop', f'text={data["title"]}'])
# 4. 添加表格
for row in data['rows']:
subprocess.run(['officecli', 'add', 'report.docx', '/body/tbl[1]',
'--type', 'row',
'--prop', f'cells={json.dumps(row)}'])
# 批量替换 for file in *.docx; do officecli set "$file" --query "run:contains(TODO)" --prop text="DONE" done # 批量更新样式 for file in *.docx; do officecli set "$file" --query "p[style=Heading1]" --prop color=FF0000 done
# 1. 运行测试 npm test # 2. 生成文档 officecli create test-report.docx officecli add test-report.docx / --type paragraph --prop text="Test Results" # 3. 添加测试结果 officecli merge test-report.docx output.docx --data test-results.json # 4. 上传 ./upload.sh output.docx
# AI 智能体执行 officecli create presentation.pptx officecli add presentation.pptx / --type slide --prop title="Product Launch" officecli add presentation.pptx '/slide[1]' --type shape --prop text="Key Features" officecli watch presentation.pptx
# 设计模板(一次性) officecli create invoice-template.docx --template # 填充 N 次 for client in clients; do officecli merge invoice-template.docx "invoice-$client.docx" --data "$client.json" done
- 每条命令都支持
--json- schema 一致
- 无需正则解析
- 每个元素都有稳定路径
- 智能体无需理解 XML 命名空间
- 结构化错误码
- 返回 suggestion 和有效范围
- 智能体无需人工介入即可自纠错
- .NET 运行时已内嵌
- 无需安装 Office
- 全平台运行
- 让 AI "看见"文档
- 不是凭 DOM 瞎猜
- 闭合"渲染 → 看 → 改"循环
- Word、Excel、PowerPoint
- 公式自动求值
- 数据透视表生成
- 模板合并
- L1:读取(语义视图)
- L2:DOM(结构化操作)
- L3:原始 XML(通用兜底)
- 想创建 PPT,但 AI 没有"眼睛"
- 想修改 Word 文档,但需要 50 行 Python 代码
- 想生成 Excel 报表,但公式不能自动求值
- 创建、读取、修改 Word、Excel、PowerPoint
- 无需复杂的 Python 代码
- 让 AI "看见"文档
- 支持截图、预览、watch
- 无需 Office
- 350+ 函数写入即自动求值
- 数据透视表生成
- 确定性 JSON 输出
- 基于路径的寻址
- 自愈式工作流
- 单一可执行文件
- 无需安装 Office
- 全平台运行
- 确定性 JSON 输出
- 基于路径的寻址
- 自愈式工作流
- 单一可执行文件
- 无需安装 Office
- 全平台运行
- 高保真 HTML 渲染
- 让 AI "看见"文档
- 闭合"渲染 → 看 → 改"循环
- 创建、读取、修改
- 公式自动求值
- 数据透视表生成
- 渐进式复杂度
- L1 → L2 → L3
- 最大限度节省 token
让任何 AI 智能体完全掌控 Word、Excel 和 PowerPoint——只需一行代码。
开源免费、单一可执行文件、无需安装 Office、零依赖、全平台运行。
- GitHub:https://github.com/iOfficeAI/OfficeCLI
- 官网:https://officecli.ai
- Discord:https://discord.gg/2QAwJn7Egx
- License:Apache 2.0
- AionUi:https://github.com/iOfficeAI/AionUi(桌面应用,用自然语言创建和编辑 Office 文档)
# macOS / Linux curl -fsSL https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.sh | bash # Windows (PowerShell) irm https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.ps1 | iex
# Homebrew brew install officecli # Scoop scoop install officecli # npm npm install -g @officecli/officecli
# MCP 服务器 officecli mcp claude officecli mcp cursor officecli mcp vscode officecli mcp lmstudio officecli mcp list
# 创建 PPT
officecli create deck.pptx
officecli add deck.pptx / --type slide --prop title="Hello, World!"
# 查看大纲
officecli view deck.pptx outline
# 实时预览
officecli watch deck.pptx
# 添加公式
officecli add budget.xlsx '/Sheet1/A1' --type cell --prop formula='=SUM(A2:A10)'
# 模板合并
officecli merge invoice-template.docx out-001.docx --data '{"client":"Acme"}'
# Dump 往返
officecli dump existing.docx -o blueprint.json
officecli batch new.docx --input blueprint.json
夜雨聆风