快速开始

简介

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-docxgenerate-pptxgenerate-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(浏览器)

工作原理

  1. 使用声明式 JSON 对象描述文档结构,传入 generateDocument()generatePresentation()generateWorkbook() 等函数
  2. 每个 JSON 键映射到对应的 OOXML 元素,生成合法的 XML 标记
  3. 函数内部将所有内容序列化为 Office Open XML 包(ZIP 归档)
  4. 你将获得一个可直接保存或提供的 BufferBlobBase64 字符串或流
Copyright © 2026