快速开始

简介

office-open 项目及其包的概述

office-open 是一个用于生成 Office Open XML 文档的 TypeScript monorepo 项目。它提供声明式 API 来创建 .docx.pptx.xlsx 文件,无需安装 Microsoft Office。

Monorepo 结构

项目由四个包组成,每个包职责明确:

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

工作原理

  1. 使用声明式 API 描述文档(如 new Document(...)new Paragraph(...)
  2. 每个元素映射到一个 XML 组件,生成合法的 OOXML 标记
  3. Packer 将所有组件序列化为 Office Open XML 包(ZIP 归档)
  4. 你将获得一个可直接保存或提供的 BufferBlob
Copyright © 2026