快速开始
简介
office-open 项目及其包的概述
office-open 是一个用于生成 Office Open XML 文档的 TypeScript monorepo 项目。它提供声明式 API 来创建 .docx、.pptx 和 .xlsx 文件,无需安装 Microsoft Office。
Monorepo 结构
项目由多个包组成,每个包职责明确:
office-open
统一包,导出所有文档生成包并提供共享工具:
- 导出
@office-open/docx、@office-open/pptx、@office-open/xlsx、@office-open/core和@office-open/xml - 包含 CLI,可从 JSON 文件生成文档
- 提供 Zod schemas 用于验证文档选项
- 提供 AI SDK 工具(
generate-docx、generate-pptx、generate-xlsx)用于 AI 代理集成 - 提供统一的
generate()函数处理所有文档类型
当你需要多种文档类型或 AI 集成时,安装此包。
@office-open/core
基础共享包。提供:
- 跨文档类型通用的 XML 组件
- 值验证工具
- OOXML 格式化辅助函数
- 单位转换器(如 EMU、磅、twips)
你通常不需要直接安装此包——它是各文档生成包的依赖项。
@office-open/xml
XML 解析和序列化层:
- 将 XML 字符串转换为兼容 JSON 的对象树
- 将对象树序列化回 XML 字符串
- 处理 OOXML 特有的 XML 约定(命名空间、前缀)
@office-open/docx
Word 文档生成:
- 创建包含段落、表格、图片、页眉、页脚等的
.docx文件 - 支持样式、节、页面布局和编号
- 导出为
Buffer(Node.js)或Blob(浏览器)
@office-open/pptx
PowerPoint 演示文稿生成:
- 创建包含幻灯片、形状、图片和图表的
.pptx文件 - 支持幻灯片布局、母版和切换效果
- 导出为
Buffer(Node.js)或Blob(浏览器)
@office-open/xlsx
Excel 电子表格生成:
- 创建包含工作表、单元格、样式、图表和公式的
.xlsx文件 - 支持单元格合并、冻结窗格、自动筛选和数据验证
- 导出为
Buffer(Node.js)或Blob(浏览器)
工作原理
- 使用声明式 JSON 对象描述文档结构,传入
generateDocument()、generatePresentation()或generateWorkbook()等函数 - 每个 JSON 键映射到对应的 OOXML 元素,生成合法的 XML 标记
- 函数内部将所有内容序列化为 Office Open XML 包(ZIP 归档)
- 你将获得一个可直接保存或提供的
Buffer、Blob、Base64字符串或流