一、你有没有被"手动改合同"逼疯过?

假设你是一家公司的行政,领导丢来一句:"把这个合同模板填500份,客户名字和金额都在Excel里。"

你打开Word,复制粘贴,改名字,改金额,保存……半小时过去了,才做了不到20份。手抖、眼花、文件名还打错了一个。

传统解决思路是写Python脚本,用 python-docx 库逐字段替换——代码写了一百行,调试半天,还经常因为格式丢失返工。

有没有一条命令就能搞定的事?

有。这就是今天的主角——GitHub 12K Star 的开源神器 OfficeCLI

OfficeCLI GitHub仓库首页

图:OfficeCLI 项目首页——全球首个专为 AI Agent 设计的 Office 命令行套件


二、OfficeCLI 是什么?

一句话定义:

**零依赖、单文件、跨平台的 Office 命令行工具——无需安装 Word/Excel/PowerPoint,就能创建、读取、修改 .docx / .xlsx / .pptx 文件。**

核心数据一览:

| 维度 | 说明 |

|------|------|

| 技术栈 | C# / .NET,内嵌运行时 |

| 包体积 | 单二进制文件,约 50MB |

| 平台 | Windows / macOS / Linux |

| 依赖 | ——不需要装 Office |

| 协议 | Apache 2.0 开源 |

| Stars | 12,200+(2026年7月) |

为什么它能火? 因为它解决了两个致命痛点:

  • **传统方案太重**:`python-docx` 需要 Python 环境 + 各种依赖,部署成本高;
  • **AI Agent 的"眼睛"问题**:AI 生成文档后,没法"看到"实际排版效果。OfficeCLI 内置 HTML 渲染引擎,能将文档渲染成 HTML/PNG,让 AI 像人一样"审视"自己的输出。

OfficeCLI 架构示意

图:OfficeCLI 三层架构——L1 读取层 → L2 DOM 操作层 → L3 原始 XML 层


三、第一步:安装 OfficeCLI(1分钟搞定)

三种安装方式,选你喜欢的。

方式一:直接下载二进制(推荐)

Windows 用户打开 PowerShell:

# 下载最新版(Windows x64)
Invoke-WebRequest -Uri "https://github.com/iOfficeAI/OfficeCLI/releases/latest/download/officecli-win-x64.zip" -OutFile "officecli.zip"
Expand-Archive officecli.zip -DestinationPath "C:\officecli"

# 加入环境变量(可选,方便全局调用)
[Environment]::SetEnvironmentVariable("Path", $env:Path + ";C:\officecli", "User")

macOS / Linux 用户:

# macOS (Apple Silicon)
curl -L -o officecli.zip https://github.com/iOfficeAI/OfficeCLI/releases/latest/download/officecli-osx-arm64.zip
unzip officecli.zip -d /usr/local/bin/
chmod +x /usr/local/bin/officecli

# Linux x64
curl -L -o officecli.tar.gz https://github.com/iOfficeAI/OfficeCLI/releases/latest/download/officecli-linux-x64.tar.gz
tar -xzf officecli.tar.gz -C /usr/local/bin/
chmod +x /usr/local/bin/officecli

方式二:.NET 工具安装

dotnet tool install --global OfficeCLI

方式三:Docker

docker pull iofficeai/officecli:latest
docker run --rm -v $(pwd):/data iofficeai/officecli create /data/output.docx

安装完成后验证:

officecli --version
# 输出:v1.0.125

✅ 到此安装完毕,全程不超过 1 分钟。


四、第二步:用命令行创建你的第一份 Word 文档

先来个"Hello World"热热身。

4.1 创建空白文档

# 创建一份空白 docx
officecli create my-first.docx

运行结果:

Created: my-first.docx (empty document, 12.4 KB)

就这么简单,一个 .docx 文件诞生了。不需要安装 Microsoft Office,不需要任何依赖。

4.2 写入标题和正文

接下来往文档里加点内容。OfficeCLI 使用 路径式元素定位(类似 XPath),通过 /body/p[1] 这样的路径精确操作文档元素:

# 添加标题段落
officecli add my-first.docx /body \
  --type paragraph \
  --prop style="Heading1" \
  --text "2026年度合同签约确认书"

# 添加正文段落
officecli add my-first.docx /body \
  --type paragraph \
  --prop style="Normal" \
  --text "甲方:星辰科技有限公司"

officecli add my-first.docx /body \
  --type paragraph \
  --prop style="Normal" \
  --text "乙方:__________________(客户名称)"

# 插入表格
officecli add my-first.docx /body \
  --type table \
  --rows 3 --cols 3 \
  --data '[["项目","单价(元)","数量"],["软件开发","50,000","1"],["运维服务","12,000","12"]]'

4.3 查看文档效果

关键在于:你能在终端里直接预览文档!

# 将文档渲染为 HTML,在浏览器中查看
officecli render my-first.docx --format html --output preview.html

# 或者直接渲染为 PNG 截图
officecli render my-first.docx --format png --output preview.png

# 实时监听模式:修改文档后浏览器自动刷新
officecli watch my-first.docx

终端运行效果截图

图:OfficeCLI 终端操作效果——创建、编辑、预览一气呵成

这就是 OfficeCLI 的核心优势:你能"看见"文档排版,而不是像 python-docx 那样盲写代码后打开才发现格式全乱了。


五、第三步:模板 + JSON 批量生成500份合同

进入正题——这才是 OfficeCLI 的杀手锏。

5.1 准备模板文件

先用 Word 或 OfficeCLI 制作一份模板 contract-template.docx,在需要填充的位置写入占位符:

{{client_name}}    ← 客户名称
{{contract_amount}}  ← 合同金额
{{sign_date}}      ← 签约日期

模板内容示例:

**项目外包合同**

>

甲方:星辰科技有限公司

乙方:**{{client_name}}**

合同金额:人民币 **{{contract_amount}}** 元

签约日期:**{{sign_date}}**

5.2 准备数据文件

创建一个 clients.json

[
  {"client_name": "北京云创科技", "contract_amount": "¥85,000", "sign_date": "2026-07-15"},
  {"client_name": "上海数联信息", "contract_amount": "¥120,000", "sign_date": "2026-07-16"},
  {"client_name": "深圳智源网络", "contract_amount": "¥67,500", "sign_date": "2026-07-17"}
]

5.3 一条命令批量生成

核心命令来了:

# 单份生成
officecli merge contract-template.docx output-001.docx \
  '{"client_name":"北京云创科技","contract_amount":"¥85,000","sign_date":"2026-07-15"}'

运行结果:

Merged: contract-template.docx → output-001.docx
  Replaced 3 placeholders
  Output size: 28.4 KB

批量生成500份: 写一个简单的 Shell 脚本:

#!/bin/bash
# batch_generate.sh — 从 JSON 数据批量生成 Word 合同

DATA_FILE="clients.json"
TEMPLATE="contract-template.docx"
OUTPUT_DIR="./output"

mkdir -p "$OUTPUT_DIR"

# 读取 JSON 数组长度
COUNT=$(cat "$DATA_FILE" | python3 -c "import sys,json; print(len(json.load(sys.stdin)))")

echo "共 $COUNT 条记录,开始批量生成..."

for i in $(seq 0 $((COUNT - 1))); do
  # 提取第 i 条 JSON 对象
  ROW=$(cat "$DATA_FILE" | python3 -c "import sys,json; print(json.dumps(json.load(sys.stdin)[$i]))")
  
  # 提取客户名用于文件名
  CLIENT=$(echo "$ROW" | python3 -c "import sys,json; print(json.load(sys.stdin)['client_name'])")
  
  # 生成文件名(替换特殊字符)
  SAFE_NAME=$(echo "$CLIENT" | sed 's/[\/:*?"<>|]/-/g')
  
  echo "[$((i+1))/$COUNT] 生成: $SAFE_NAME.docx"
  
  officecli merge "$TEMPLATE" "$OUTPUT_DIR/${SAFE_NAME}.docx" "$ROW"
done

echo "全部完成!文件位于 $OUTPUT_DIR/"

运行效果:

bash batch_generate.sh

共 500 条记录,开始批量生成...
[1/500] 生成: 北京云创科技.docx
  Merged: contract-template.docx → ./output/北京云创科技.docx
  Replaced 3 placeholders
[2/500] 生成: 上海数联信息.docx
  Merged: contract-template.docx → ./output/上海数联信息.docx
  Replaced 3 placeholders
...
[500/500] 生成: 成都智联科技.docx
  Merged: contract-template.docx → ./output/成都智联科技.docx
  Replaced 3 placeholders
全部完成!文件位于 ./output/

500 份合同,一条脚本,几分钟跑完。 对比手动操作,效率提升何止 100 倍。


六、进阶:接入 AI Agent,让大模型帮你改文档

OfficeCLI 的另一大杀招是 MCP(Model Context Protocol)原生集成。配置后,Claude Code、Cursor 等 AI 编程工具就能直接操作 Office 文件。

6.1 添加 MCP 服务

在 Claude Code 的配置文件中添加:

{
  "mcpServers": {
    "officecli": {
      "command": "officecli",
      "args": ["serve"]
    }
  }
}

6.2 直接用自然语言操控文档

配置完成后,你可以这样跟 AI 对话:

用户:"帮我把 contract.docx 里所有金额大于10万的合同金额标红加粗"

>

AI:调用 OfficeCLI 读取文档 → 识别金额 → 修改样式 → 渲染预览 → 确认结果

整个过程 无需打开 Word,全在终端完成。


七、实战总结

| 场景 | 传统方案 | OfficeCLI |

|------|----------|-----------|

| 批量生成合同 | Python + python-docx,100+ 行代码 | 1 条 merge 命令 |

| 读取 Word 内容 | 安装 Office 或 LibreOffice | officecli read doc.docx |

| 查看排版效果 | 打开 Word 查看 | officecli render --format png |

| AI 操控文档 | 写复杂 API 胶水代码 | MCP 一行配置搞定 |

| 部署环境 | Python + pip + lxml 依赖 | 单文件,零依赖 |

三件事,记住就够了:

  • `officecli create` — 创建文档
  • `officecli merge` — 模板 + JSON 批量生成(这才是生产力核心)
  • `officecli serve` — 接入 AI Agent,让大模型替你改文档

这个项目还在高速迭代中,截止发稿前已 12K+ Stars,建议现在就 Star 起来备用。

GitHub 仓库:[https://github.com/iOfficeAI/OfficeCLI](https://github.com/iOfficeAI/OfficeCLI)

>

官方文档:[https://officecli.dev](https://officecli.dev)

下次老板再让你"手动改500份合同",你知道该怎么做了。


本文由 CSDN 技术博主原创,基于 OfficeCLI v1.0.125 编写。如果对你有帮助,欢迎点赞收藏转发。

Logo

欢迎加入 MCP 技术社区!与志同道合者携手前行,一同解锁 MCP 技术的无限可能!

更多推荐