小马的 AI 工具集

办公命令行

专为 AI Agent 打造的 Office CLI,免装 Office 直接读写 Word/Excel/PPT

办公命令行
类型 CLI 17,708 星标 更新 2026-07-14 许可 Apache-2.0 原仓库 主页

OfficeCLI 是全球首个且专为 AI 代理设计的最佳 Office 套件。

用一行代码让任何 AI 代理完全掌控 Word、Excel 和 PowerPoint。

开源。单个二进制文件。无需安装 Office。无依赖。随处运行。

OfficeCLI 内置的 HTML 渲染引擎能以高保真度重现文档——这正是 AI 获得“视觉”的关键。 它将 .docx / .xlsx / .pptx 渲染为 HTML 或 PNG,形成 渲染 → 查看 → 修正 的闭环。

GitHub Release License

English | 中文 | 日本語 | 한국어

🌐 网站: officecli.ai  |  💬 社区: Discord

OfficeCLI 在 AionUi 上创建 PowerPoint 演示文稿

AionUi 上使用 OfficeCLI 创建 PPT 的过程

PowerPoint 演示文稿

OfficeCLI 设计演示文稿 (PowerPoint) OfficeCLI 商务演示文稿 (PowerPoint) OfficeCLI 技术演示文稿 (PowerPoint)
OfficeCLI 太空演示文稿 (PowerPoint) OfficeCLI 游戏演示文稿 (PowerPoint) OfficeCLI 创意演示文稿 (PowerPoint)

Word 文档

OfficeCLI 学术论文 (Word) OfficeCLI 项目提案 (Word) OfficeCLI 年度报告 (Word)

Excel 电子表格

OfficeCLI 预算追踪器 (Excel) OfficeCLI 成绩簿 (Excel) OfficeCLI 销售仪表盘 (Excel)

以上所有文档均由 AI 代理使用 OfficeCLI 完全自主创建——无需模板,无需手动编辑。

面向 AI 代理——一行代码即可上手

将以下内容粘贴到你的 AI 代理对话中——它会读取技能文件并自动完成安装:

curl -fsSL https://officecli.ai/SKILL.md

就是这么简单。该技能文件会教会代理如何安装二进制文件并使用所有命令。

面向人类用户

选项 A —— GUI: 安装 AionUi —— 一款桌面应用,让你通过自然语言创建和编辑 Office 文档,底层由 OfficeCLI 驱动。只需描述你的需求,AionUi 会处理其余一切。

选项 B —— CLI:GitHub Releases 下载对应平台的二进制文件,然后运行:

officecli install

这会将二进制文件复制到你的 PATH 中,并将其检测到的每个 AI 编码代理(Claude Code、Cursor、Windsurf、GitHub Copilot 等)中都安装 officecli 技能。你的代理可以立即代表你创建、读取和编辑 Office 文档,无需额外配置。

面向开发者——30 秒内亲眼见证

# 1. 安装(macOS / Linux)——或者:brew install officecli / npm install -g @officecli/officecli
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

# 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!"

就这么简单。每次执行 addsetremove 命令,预览都会实时刷新。继续尝试吧——浏览器就是你的实时反馈循环。

快速入门

# 创建演示文稿并添加内容
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
# → Slide 1: Q4 Report
# →   Shape 1 [TextBox]: Revenue grew 25%

# 以 HTML 格式查看——在浏览器中打开渲染预览,无需服务器
officecli view deck.pptx html

# 获取任意元素的 JSON 结构
officecli get deck.pptx '/slide[1]/shape[1]' --json

# 保存并关闭——将驻留会话写入磁盘
officecli close deck.pptx
{
  "tag": "shape",
  "path": "/slide[1]/shape[1]",
  "attributes": {
    "name": "TextBox 1",
    "text": "Revenue grew 25%",
    "x": "720000",
    "y": "1800000"
  }
}

为什么选择 OfficeCLI?

过去需要 50 行 Python 和 3 个独立库才能完成的工作:

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 add deck.pptx / --type slide --prop title="Q4 Report"

OfficeCLI 能做什么:

  • 创建文档——从空白开始或包含内容
  • 读取文本、结构、样式、公式——以纯文本或结构化 JSON 形式
  • 分析格式问题、样式不一致以及结构缺陷
  • 修改任意元素——文本、字体、颜色、布局、公式、图表、图像
  • 重新组织内容——跨文档添加、删除、移动、复制元素
格式读取修改创建
Word (.docx)
Excel (.xlsx)
PowerPoint (.pptx)

Word — 完整的 i18n 与 RTL 支持(按文字系统分配字体槽、按文字系统分配 BCP-47 语言标签 lang.latin/ea/cs、复杂文字系统的粗体/斜体/字号、通过段落/运行/节/表格/样式/页眉页脚/文档默认设置层叠 direction=rtlrtlGutter + pgBorders 简写、针对印地语/阿拉伯语/泰语/中日韩语言支持区域感知的页码编号;create --locale ar-SA 自动启用 RTL),段落(framePr、制表符简写、基于字符的缩进),运行(下划线颜色、位置以半磅为单位),表格(虚拟列操作:添加/删除/移动/复制自、hMerge),样式文本框 / 形状(文本框:旋转、textDirection eaVert/vert270、渐变、阴影、透明度),页眉/页脚图片(PNG/JPG/GIF/SVG),公式(LaTeX 输入),图表(mermaid 格式 → 原生可编辑形状,或任意 mermaid 类型为高保真 PNG),批注脚注水印书签目录图表超链接表单域内容控件 (SDT)(22 种无参类型 + MERGEFIELD / REF / PAGEREF / SEQ / STYLEREF / DOCPROPERTY / IF),OLE 对象修订/追踪更改revision.type=ins|del|format|moveFrom|moveTo + revision.action=accept|reject,按作者选择 /revision[@author=Alice],跟踪的查找与替换),页面背景颜色,文档属性

Excel单元格(拼音指南 / 添加时注音、删除时使用 Excel 界面 --shift left|up / 添加时 shift=right|down),公式(350 多个内置函数并自动求值、动态数组溢出自动添加 _xlfn. 前缀、财务/债券和统计类函数、OFFSET/INDIRECT、定义名称公式体在解析时内联、插入行/列时公式引用重写),工作表(可见/隐藏/完全隐藏、页边距、打印标题行/列、RTL sheetView、级联感知的工作表重命名、打开时过滤空白单元格膨胀),布尔 and/or 选择器(row[Salary>5000 and Region=EMEA]),表格排序(工作表/区域、多关键字、感知辅助列),条件格式图表(包括箱线图、帕累托图自动排序+累计百分比、对数坐标轴),数据透视表(多字段、日期分组、值显示方式、排序、总计、小计、紧凑/大纲/表格布局、重复项标签、空行、计算字段、持久 labelFilter / topN 筛选器、缓存写时复制+跨透视表共享),切片器命名区域数据验证图片(PNG/JPG/GIF/SVG 双表示回退),迷你图批注(RTL),自动筛选形状OLE 对象,CSV/TSV 导入,$Sheet:A1 单元格地址

PowerPoint幻灯片(页眉/页脚/日期/幻灯片编号开关、隐藏),形状(图案填充、模糊效果、超链接工具提示+幻灯片跳转链接、高亮颜色应用于运行、slideMaster/slideLayout 类型化添加/设置/删除、箭头别名、effective.X + effective.X.src),图片(PNG/JPG/GIF/SVG、填充模式:拉伸/包含/覆盖/平铺、亮度/对比度/发光/阴影、旋转、链接+工具提示),表格(内置 PowerPoint 样式目录、虚拟 /col[C] 获取+交换/copyFrom、行/列 Move/CopyFrom、填充/背景别名),图表(饼中饼、条中饼、每个属性轴轴线/网格线设置器、系列添加/删除并应用主题调色板、anchor=x,y,w,h 简写),动画(15 种强调 + 16 种退出模板支持的预设、多效果链、运动路径预设、重复/重新启动/自动翻转、图表动画 + chartBuild),切换效果(变形 + p14 + 12 种 p15 PowerPoint 2013+ 预设),3D 模型 (.glb)(组合 rotation=ax,ay,az),幻灯片缩放公式(LaTeX 输入),图表(mermaid 流程图/序列图 → 原生可编辑形状,或任意 mermaid 类型为高保真 PNG),主题连接符from/to 接受完整的 /slide[N]/shape[@name=Foo] 路径),视频/音频(循环、自动开始),组合(链接+工具提示;Get/Query/Add/Remove 均递归进入组合),备注(RTL、语言),批注(RTL、旧版+现代 p188 线程化往返),SmartArt(通过 add-part + raw-set 往返),OLE 对象占位符(按 phType 添加/设置)

使用场景

对于开发者:

  • 从数据库或 API 自动生成报告
  • 批量处理文档(批量查找替换、样式更新)
  • 在 CI/CD 环境中构建文档流水线(根据测试结果生成文档)
  • Docker/容器化环境中的无头 Office 自动化

对于 AI 智能体:

  • 根据用户提示生成演示文稿(见上方示例)
  • 从文档中提取结构化数据至 JSON
  • 在交付前验证和检查文档质量

对于团队:

  • 克隆文档模板并用数据填充
  • CI/CD 流水线中的自动化文档验证

安装

以单个自包含二进制文件形式分发。.NET 运行时已嵌入——无需安装任何内容,无需管理运行时。

一行安装:

# 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

或手动下载,从 GitHub Releases 页面获取:

平台二进制文件
macOS Apple Siliconofficecli-mac-arm64
macOS Intelofficecli-mac-x64
Linux x64officecli-linux-x64
Linux ARM64officecli-linux-arm64
Windows x64officecli-win-x64.exe
Windows ARM64officecli-win-arm64.exe

验证安装:officecli --version

或从下载的二进制文件进行自安装(或直接运行 officecli 以触发自动安装):

officecli install    # 显式安装
officecli            # 裸调用也会触发安装

更新会在后台自动检查。可通过 officecli config autoUpdate false 禁用,或通过 OFFICECLI_SKIP_UPDATE=1 跳过单次检查。配置文件位于 ~/.officecli/config.json

关键特性

内置引擎与生成原语

OfficeCLI 是自包含的。以下能力已内置于二进制文件中——无需 Office

渲染引擎——高保真度,内置

OfficeCLI 的基石:自研的高保真 HTML 渲染引擎,让 AI 智能体能够看到渲染后的文档,而非仅从 DOM 猜测。它覆盖形状、图表(趋势线、误差线、瀑布图、K线图、迷你图)、公式(OMML → LaTeX,通过 KaTeX 渲染)、3D .glb 模型(通过 Three.js)、变形过渡、幻灯片缩放和形状效果。通过将渲染后的 HTML 通过无头浏览器生成每页 PNG 截图。三种模式:

  • view html —— 独立的 HTML 文件,资源已内联。可在任意浏览器中打开。
  • view screenshot —— 每页 PNG,方便多模态智能体读取。
  • watch —— 本地 HTTP 服务器,自动刷新预览;每次 add / set / remove 操作都会立即更新浏览器。Excel 的 watch 模式支持内联单元格编辑以及拖拽重新定位图表。
officecli view deck.pptx html -o /tmp/deck.html
officecli view deck.pptx screenshot -o /tmp/deck.png # 添加 --page 1-N 以获取更多幻灯片
officecli watch deck.pptx                            # http://localhost:26315

没有可视化,生成幻灯片的智能体就像在盲飞——它只能读取 DOM,但无法判断标题是否溢出或两个形状是否重叠。由于渲染内置于二进制文件中,渲染 → 查看 → 修正 的循环可以在 CI、Docker、无显示器的服务器上运行——任何能运行二进制文件的地方都可以。

公式与数据透视表引擎

350+ 内置 Excel 函数,在写入时自动计算——写入 =SUM(A1:A2),然后 get 单元格,值已经在那里了。无需经过 Office 进行重新计算。支持溢出动态数组(FILTER / SORT / UNIQUE / SEQUENCE / LET / LAMBDA / MAP)、VLOOKUP / XLOOKUP / INDEX / MATCH、金融与债券数学(XIRR / PRICE / YIELD / DURATION / COUPNUM)、统计分布、检验与回归(NORM.DIST / T.TEST / LINEST),以及日期和文本函数。

此外,一条命令即可从源区域创建原生 OOXML 数据透视表——多字段行/列/筛选器、10种聚合方式、showDataAs 模式、日期分组、计算字段、Top-N、布局。数据透视表缓存 + 定义被写入 OOXML,因此 Excel 打开文件时聚合结果已经填充完毕:

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

模板合并——一次生成,多次填充

merge 使用 JSON 数据替换任意 .docx / .xlsx / .pptx 中的 {{key}} 占位符——涵盖段落、表格单元格、形状、页眉、页脚和图表标题。智能体只设计一次布局(成本高);生产代码则填充 N 次(成本低、确定性高、零 Token 成本)。避免了智能体从头重新生成每个报告并产生 N 个不一致布局的失败模式。

officecli merge invoice-template.docx out-001.docx '{"client":"Acme","total":"$5,200"}'
officecli merge q4-template.pptx q4-acme.pptx data.json

往返转储——从现有文档中学习

dump 将任意 .docx.pptx.xlsx 文件(整个文档任意子树——单个段落、表格、幻灯片、工作表、样式部分、编号、主题或设置)序列化为可重放的批量 JSON;batch 命令则回放该 JSON。当用户提供了一个想要模仿的样本时,智能体读取结构化的规范(而非原始的 OOXML XML)、修改后再回放。它连接了“我有一个现有模板”和“帮我生成 100 个变体”这两个场景。

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

驻留模式与批量操作

对于多步骤工作流,驻留模式将文档保存在内存中。批量模式则在单次调用中应用多个操作。

# 驻留模式——通过命名管道实现近零延迟
officecli open report.docx
officecli set report.docx /body/p[1]/r[1] --prop bold=true
officecli set report.docx /body/p[2]/r[1] --prop color=FF0000
officecli close report.docx

# 批量模式——多命令执行(默认遇到错误继续执行;使用 --stop-on-error 中止)
echo '[{"command":"set","path":"/slide[1]/shape[1]","props":{"text":"Hello"}},
      {"command":"set","path":"/slide[1]/shape[2]","props":{"fill":"FF0000"}}]' \
  | officecli batch deck.pptx --json

# 使用 --commands 内联批量(无需标准输入)
officecli batch deck.pptx --commands '[{"op":"set","path":"/slide[1]/shape[1]","props":{"text":"Hi"}}]'

# 在第一个失败的命令时中止(默认是遇错继续)
officecli batch deck.pptx --input updates.json --stop-on-error --json

用其他工具读取文件?先刷新到磁盘。 OfficeCLI 自身读取(get/query/view)始终看到你的最新编辑,因此在 OfficeCLI 内部你无需保存。但常驻缓存会推迟磁盘写入,所以在非 OfficeCLI 程序读取文件之前——如 python‑docx/openpyxl、Microsoft Word、渲染器、交付/上传——请先刷新:

officecli set report.docx /body/p[1] --prop bold=true
officecli save report.docx           # 刷新,保持常驻缓存活跃(或用 `close` 刷新并释放)
python my_reader.py report.docx      # 现在能看见编辑内容

常驻缓存还会在空闲后不久自动刷新(自适应 2–10 秒,根据文档实测保存成本缩放)。对于每个命令后都有其他程序读取的流水线,设置 OFFICECLI_RESIDENT_FLUSH=each——每次修改在命令返回前都已写入磁盘,同时常驻缓存保持活跃。完整的刷新模型(each/auto/固定/off、save / close、环境变量调优):wiki → 打开/关闭

三层架构

从简单开始,需要时再深入。

用途命令
L1: 读取内容的语义化视图view (text, annotated, outline, stats, issues, html, svg, screenshot)
L2: DOM结构化元素操作get, query, set, add, remove, move, swap
L3: 原始 XML直接 XPath 访问——通用后备方案raw, raw-set, add-part, validate
# L1 — 高层视图
officecli view report.docx annotated
officecli view budget.xlsx text --cols A,B,C --max-lines 50

# L2 — 元素级操作
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

# L3 — 当 L2 不够用时用原始 XML
officecli raw deck.pptx '/slide[1]'
officecli raw-set report.docx document \
  --xpath "//w:p[1]" --action append \
  --xml '<w:r><w:t>Injected text</w:t></w:r>'

AI 集成

MCP 服务器

内置 MCP 服务器——一行命令注册:

officecli mcp claude       # Claude Code
officecli mcp cursor       # Cursor
officecli mcp vscode       # VS Code / Copilot
officecli mcp lmstudio     # LM Studio
officecli mcp list         # 检查注册状态

通过 JSON-RPC 将所有文档操作暴露为工具——无需 shell 访问。

直接 CLI 集成

两步让 OfficeCLI 与你的 AI 代理配合使用:

  1. 安装二进制文件——一条命令(参见 安装
  2. 完成。 OfficeCLI 通过检查已知配置目录自动检测你的 AI 工具(Claude Code、GitHub Copilot、Codex),并安装其技能文件。你的代理可以立即创建、读取和修改任何 Office 文档。
手动设置(可选)

如果自动安装未覆盖你的设置,可以手动安装技能文件:

直接将 SKILL.md 提供给代理:

curl -fsSL https://officecli.ai/SKILL.md

作为本地技能安装到 Claude Code:

curl -fsSL https://officecli.ai/SKILL.md -o ~/.claude/skills/officecli.md

其他代理:SKILL.md 的内容包含在代理的系统提示或工具描述中。

为何你的代理会因 OfficeCLI 而表现出色

  • 确定性 JSON 输出——每个命令都支持 --json,且模式一致。无需正则解析,无需抓取 stdout。
  • 基于路径的寻址——每个元素都有稳定路径(/slide[1]/shape[2])。代理无需了解 XML 命名空间即可导航文档。(OfficeCLI 语法:从 1 开始索引,使用元素本地名称——而非 XPath。)
  • 渐进复杂度(L1 → L2 → L3)——代理从只读视图开始,升级到 DOM 操作,仅在必要时回退到原始 XML。最小化 token 消耗。
  • 自愈工作流——validateview issues 以及结构化的错误代码(not_foundinvalid_valueunsupported_property)会返回建议和有效范围。代理无需人工干预即可自我修正。
  • 内置代理友好渲染引擎——view html / view screenshot / watch 原生输出 HTML 和 PNG。无需 Office。代理可以看到输出并修复布局问题,即使在 CI / Docker / 无头环境中也能工作。
  • 内置公式与数据透视表引擎——写入时自动计算 350+ Excel 函数(包括溢出动态数组、财务/债券和统计函数族);从源范围一键生成原生 OOXML 数据透视表。代理无需通过 Office 往返即可立即读取计算值和聚合结果。
  • 模板合并——代理设计一次布局,下游代码填充 {{key}} 占位符 N 次。避免为重新生成每个报告而燃烧 token。
  • 往返转储——dump 将任意 .docx.pptx.xlsx 转换为可重放的批处理 JSON。代理通过读取结构化规范(而非原始 OOXML XML)从人工编写的样本中学习。
  • 内置帮助——当不确定属性名称或值格式时,代理运行 officecli <format> set <element> 而不是猜测。
  • 自动安装——OfficeCLI 检测你的 AI 工具(Claude Code、Cursor、VS Code……)并自行配置。无需手动设置技能文件。

内置帮助

不要猜测属性名称——直接深入帮助:

officecli pptx set              # 所有可设置的元素和属性
officecli pptx set shape        # 一种元素类型的详细信息
officecli pptx set shape.fill   # 一个属性:格式和示例
officecli docx query            # 选择器参考:属性、:contains、:has() 等

运行 officecli --help 查看完整概览。

JSON 输出模式

所有命令都支持 --json。通用响应形状:

单个元素get --json):

{"tag": "shape", "path": "/slide[1]/shape[1]", "attributes": {"name": "TextBox 1", "text": "Hello"}}

元素列表query --json):

[
  {"tag": "paragraph", "path": "/body/p[1]", "attributes": {"style": "Heading1", "text": "Title"}},
  {"tag": "paragraph", "path": "/body/p[5]", "attributes": {"style": "Heading1", "text": "Summary"}}
]

错误返回非零退出码,并带有结构化的错误对象,包含错误码、建议和有效值(如果可用):

{
  "success": false,
  "error": {
    "error": "Slide 50 not found (total: 8)",
    "code": "not_found",
    "suggestion": "Valid Slide index range: 1-8"
  }
}

错误码:not_foundinvalid_valueunsupported_propertyinvalid_pathunsupported_typemissing_propertyfile_not_foundfile_lockedinvalid_selector。属性名称会自动纠正——拼写错误的属性会返回一个包含最接近匹配项的建议。

错误恢复——代理通过检查可用元素来自我修正:

# 代理尝试无效路径
officecli get report.docx /body/p[99] --json
# 返回:{"success": false, "error": {"error": "...", "code": "not_found", "suggestion": "..."}}

# 代理通过检查可用元素自我修正
officecli get report.docx /body --depth 1 --json
# 返回可用子元素列表,代理选择正确路径

突变确认setaddremovemovecreate 配合 --json):

{"success": true, "path": "/slide[1]/shape[1]"}

有关退出码和错误格式的完整详情,请参阅 officecli --help

比较

OfficeCLIMicrosoft OfficeLibreOfficepython-docx / openpyxl
开源且免费✓ (Apache 2.0)✗ (付费许可)
AI原生 CLI + JSON
零安装(单二进制文件)✗ (Python + pip)
可从任意语言调用✓ (CLI)✗ (COM/Add-in)✗ (UNO API)仅 Python
基于路径的元素访问
原始 XML 回退部分支持
内置面向代理的友好渲染引擎
无头 HTML/PNG 输出部分支持
跨格式模板合并 ({{key}})
往返转储 → 批量 JSON
实时预览(编辑时自动刷新)
无头 / CI部分支持
跨平台Windows/Mac
Word + Excel + PowerPoint独立库

命令参考

命令描述
create创建一个空白的 .docx、.xlsx 或 .pptx 文件(类型由扩展名决定)
view查看内容(模式:outlinetextannotatedstats--page-count)、issueshtmlsvgscreenshotpdf(通过导出器插件)、forms(通过格式处理器插件))。docx 支持 --render auto|native|html
load_skill打印特定技能的嵌入式 SKILL.md 内容(无需安装)
get获取元素及其子元素(--depth N--json
queryCSS 风格的查询,支持布尔 and/or、按列名查询行(row[Salary>5000])、--find 标志
set修改元素属性;接受选择器和 Excel 原生路径(与 get/query 一致),支持 --find/--replace 标志
add添加元素(或通过 --from <path> 克隆)
remove移除一个元素
move移动元素(--to <parent>--index N--after <path>--before <path>
swap交换两个元素
validate根据 OpenXML 架构进行验证
view <file> issues枚举文档问题(文本溢出、缺少替代文本、公式错误等)
batch单次执行多个操作(stdin、--input--commands;默认在错误时继续,--stop-on-error 可中止)
dump将 .docx、.pptx 或 .xlsx 序列化为可重放的批量 JSON(通过 batch 实现往返);支持指定子树路径
refresh重新计算目录页码 / PAGE / 交叉引用(仅 .docx;Windows 上使用 Word 后端,无头 HTML 回退)
plugins列出/检查/校验已安装的插件(扩展至 .doc、.hwpx、.pdf 导出,通过 dump-reader/exporter/format-handler 类型)
merge模板合并 — 用 JSON 数据替换 {{key}} 占位符
watch在浏览器中实时预览 HTML,支持自动刷新
mcp启动 MCP 服务器用于 AI 工具集成
raw查看文档部分的原始 XML
raw-set通过 XPath 修改原始 XML
add-part添加新的文档部分(页眉、图表等)
open启动驻留模式(将文档保留在内存中)
close保存并关闭驻留模式
install安装二进制文件 + 技能 + MCP(allclaudecursor 等)
config获取或设置配置
<format> <command>内置帮助(例如 officecli pptx set shape

端到端工作流示例

典型的自修复代理工作流:创建演示文稿、填充内容、验证并修复问题——全程无需人工干预。

# 1. 创建
officecli create report.pptx

# 2. 添加内容
officecli add report.pptx / --type slide --prop title="Q4 Results"
officecli add report.pptx '/slide[1]' --type shape \
  --prop text="Revenue: $4.2M" --prop x=2cm --prop y=5cm --prop size=28
officecli add report.pptx / --type slide --prop title="Details"
officecli add report.pptx '/slide[2]' --type shape \
  --prop text="Growth driven by new markets" --prop x=2cm --prop y=5cm

# 3. 验证
officecli view report.pptx outline
officecli validate report.pptx

# 4. 修复任何发现的问题
officecli view report.pptx issues --json
# 根据输出处理问题,例如:
officecli set report.pptx '/slide[1]/shape[1]' --prop font=Arial

单位与颜色

所有尺寸和颜色属性均接受灵活输入格式:

类型接受的格式示例
尺寸cm、in、pt、px 或原始 EMU2cm1in72pt96px914400
颜色十六进制、命名颜色、RGB、主题色#FF0000FF0000redrgb(255,0,0)accent1
字号纯数字或以 pt 结尾1414pt10.5pt
间距pt、cm、in 或倍数12pt0.5cm1.5x150%

常见模式

# 替换 Word 文档中所有 Heading1 文本
officecli query report.docx "paragraph[style=Heading1]" --json | ...
officecli set report.docx /body/p[1]/r[1] --prop text="New Title"

# 以 JSON 格式导出所有幻灯片内容
officecli get deck.pptx / --depth 2 --json

# 批量更新 Excel 单元格
officecli batch budget.xlsx --input updates.json --json

# 将 CSV 数据导入 Excel 工作表
officecli add budget.xlsx / --type sheet --prop name="Q1 Data" --prop csv=sales.csv

# 批量报告的模板合并
officecli merge invoice-template.docx invoice-001.docx '{"client":"Acme","total":"$5,200"}'

# 交付前检查文档质量
officecli validate report.docx && officecli view report.docx issues --json

从 Python 或 Node.js — 安装一个轻量级驻留管道 SDK(无需每次调用生成新进程):

# Python — `pip install officecli-sdk`
from officecli import Doc
with Doc("deck.pptx") as d:
    d.add("/", type="slide", title="Q4 Report")
    print(d.get("/slide[1]"))
// Node.js — `npm install @officecli/sdk`
import { Doc } from "@officecli/sdk";
await using d = await Doc.open("deck.pptx");
await d.add("/", { type: "slide", title: "Q4 Report" });
console.log(await d.get("/slide[1]"));

两个 SDK 在缺少原生 CLI 时会自动配置(镜像优先、支持 Windows),并显式告知安装过程,而非静默安装。

或者直接封装子进程,一次性调用:

import json, subprocess
def cli(*args):
    return json.loads(subprocess.check_output(["officecli", *args, "--json"], text=True))
cli("create", "deck.pptx")

文档

Wiki 提供了每个命令、元素类型和属性的详细指南:

从源码构建

仅编译需要 .NET 10 SDK。输出为独立的原生二进制文件——.NET 内嵌在二进制文件中,运行时无需额外安装 .NET。

./build.sh

许可协议

Apache License 2.0

欢迎在 GitHub Issues 提交错误报告和贡献。


如果您觉得 OfficeCLI 有用,请在 GitHub 上为其点星 — 这有助于更多人发现该项目。

OfficeCLI.AI | GitHub

在 GitHub 查看完整项目