快速开始
命令行工具 (CLI)
使用 JSON 生成 Office 文件,或从命令行检测与解析支持的格式
office-open 包包含一个命令行工具,可从 JSON 生成文档,也可检测或解析支持的 Office 文件。
#安装
命令行工具随 office-open 包一起安装:
pnpm add office-open
npm install office-open
yarn add office-open
bun add office-open
#用法
office-open <类型> <输入> [输出]
- 类型 — 文档类型:
docx、pptx或xlsx - 输入 — JSON 字符串或 JSON 文件路径
- 输出 — 输出文件路径(默认:
output.<ext>)
生成支持全部 OOXML 包变体:docx/docm/dotx/dotm、xlsx/xlsm/xltx/xltm 与 pptx/pptm/potx/potm。
#选项
| 参数 | 别名 | 说明 |
|---|---|---|
--input-file | -i | 从文件读取 JSON |
--output-file | -o | 输出文件路径 |
--help | -h | 显示帮助 |
--version | -v | 显示版本 |
#示例
#从 JSON 文件生成
office-open docx input.json "我的文档.docx"
#使用参数
office-open pptx -i slides.json -o "演示文稿.pptx"
#内联 JSON
office-open docx '{"sections":[{"children":[{"paragraph":{"children":["你好,世界!"]}}]}]}' "output.docx"
#检测输入文件
office-open detect input.doc
office-open detect input.rtf --json
格式检测覆盖 OOXML 变体、旧版 .doc/.xls/.ppt、RTF 与 ODF 包。
#解析输入文件
office-open parse input.odt --output model.json
解析结果会返回检测输入对应的 options 族:DocumentOptions、WorkbookOptions 或 PresentationOptions。旧版 DOC/XLS/PPT 仅支持解析;RTF 与 ODT/ODS/ODP 也提供生成器。
#JSON 格式
每种文档类型有各自的必需结构。命令行工具会在生成前根据对应 schema 验证输入。
#DOCX
{
"sections": [
{
"children": [{ "paragraph": { "children": [{ "text": "你好,世界!", "bold": true }] } }]
}
]
}
#PPTX
{
"title": "我的演示文稿",
"slides": [
{
"children": [
{
"shape": {
"x": 100,
"y": 100,
"width": 760,
"height": 340,
"textBody": { "paragraphs": [{ "children": [{ "text": "你好,世界!", "size": 32 }] }] }
}
}
]
}
]
}
#XLSX
{
"worksheets": [
{
"name": "Sheet1",
"rows": [
{ "cells": [{ "value": "姓名" }, { "value": "分数" }] },
{ "cells": [{ "value": "张三" }, { "value": 95 }] }
]
}
]
}
#验证
命令行工具会在生成前验证 JSON 输入。如果输入无效,会给出具体的错误位置和原因:
Error: Invalid docx options: at "sections": must be array
#Schema 查询
CLI 也可以查询 JSON Schema — 手写 JSON 或通过 AI 代理编写时,可用来核对精确的字段名、枚举值或单位约束:
office-open schema index docx # 按域分组的查询入口
office-open schema index docx --all # 全部定义名
office-open schema slice docx ParagraphOptions RunOptions # 这些类型的子 schema
切片携带所请求类型的完整依赖闭包;未请求的编目域保持为可展开的 stub。泛型定义名在 shell 中需要引号:"HeaderFooterGroup<HeaderFooterReference>"。