dream-num/univer
摘要
Univer 是一个开源 SDK,用于创建可嵌入的办公应用程序,如电子表格、文档和演示文稿,并具备可定制的插件架构。
查看缓存全文
缓存时间: 2026/09/22 15:02
dream-num/univer
来源:https://github.com/dream-num/univer
AI 智能体的办公集成工具套件
电子表格 · 文档 · 演示文稿 · 数据库 · 看板 · PDF(即将推出)
高性能、完全可定制的办公软件开发工具包
通过插件架构、基于 Canvas 的渲染、公式引擎以及一个可在浏览器和 Node.js 上运行的 Facade API,构建可嵌入的高效生产力体验。
English | 简体中文 | 繁體中文 | 日本語 | 한국어 | Español
🌐 官网 (https://univer.ai/) | 📖 文档 (https://docs.univer.ai) | ✨ 案例展示 (https://docs.univer.ai/showcase) | 📘 API 参考 (https://docs.univer.ai/reference/classes/univer) | 📝 博客 (https://docs.univer.ai/blog)
发布版本
许可证
构建状态
代码质量
代码覆盖率
星标数
贡献者
问题追踪
最近提交
Discord
Twitter
Open Collective
Trendshift
✨ 什么是 Univer?
Univer 是一个用于在您自己的产品内创建办公应用程序的开源 SDK。它为您提供构建电子表格、文档和演示文稿体验的基础模块,而无需强制使用托管应用或固定界面。
当您需要执行以下操作时,请使用 Univer:
- 将电子表格或文档编辑功能嵌入 SaaS 产品、内部工具、BI 工作流或 AI 应用程序。
- 在服务器上运行与浏览器中使用相同架构的工作簿/文档处理。
- 通过插件仅组合您需要的功能,或使用预设快速启动。
- 通过自定义插件、命令、服务、UI 组件和 Facade API 扩展行为。
Univer 不仅仅是一个电子表格文件查看器。它是用于构建您自己的高效生产力界面的框架。
在 Univer 产品家族 (https://univer.ai/) 中,办公工具共享用于存储和计算的运行时。内容可以跨工具组合和嵌入,其中关联的数据和引用会同步更新。人员和 AI 智能体可以在同一文件中协同工作。
请参阅功能矩阵 (https://univer.ai/capabilities) 了解产品覆盖范围,并参阅开源版与专业版了解此代码仓库的范围。
基于 Univer Office SDK 构建
以下开源项目使用 Univer Office SDK 构建:
| 项目 | 描述 |
|---|---|
| Univer 工作区 | 为人员和 AI 智能体设计的办公工作区,支持共享编辑和审阅智能体的更改。 |
| DeepSeek Harness 的 Univer Office | DeepSeek Harness 的办公插件,具有关联内容、验证机制以及用于智能体协作的隔离工作树。 |
| Univer CLI | 供智能体在本地命令行工作区中创建、编辑、检查和交付办公内容的工具。 |
| WorkBuddy 的 Univer Office | WorkBuddy 的本地办公集成,支持 MCP 预览和草稿审阅。开发预览版。 |
| OpenClaw 的 Univer Office | 用于在 OpenClaw 中创建、审阅和交付办公内容的工具。 |
每个项目都记录了其自身的设置和 SDK 许可要求。
🌟 亮点
⚡ 为大型界面构建
基于 Canvas 的渲染和专用公式引擎使复杂工作簿保持响应。
🧩 默认插件化架构
无需依赖整个技术栈即可组合、替换、懒加载或扩展功能。
🤖 适用于 AI 基础设施的无头模式
在 Node.js 中运行工作簿和文档逻辑,为智能体、自动化和服务器端工作流提供支持。
🛠️ 产品就绪的 SDK
框架适配器、Facade API、预设和无头运行时适用于实际集成路径。
🌗 暗黑模式就绪
UI 组件和渲染引擎均能适应浅色和深色主题。
🔌 统一的 Facade API
一个一致的 API 接口,涵盖浏览器和 Node.js 上的工作簿、范围、公式和文档。
🚀 为什么选择 Univer?
- 同构设计:在浏览器中运行 UI 应用程序,在 Node.js 中运行无头处理。
- 插件优先架构:每个功能都作为可组合的插件交付,因此功能可以添加、移除、替换或懒加载。
- 用于快速集成的预设模式:当您需要快速获得一个可运行的应用程序时,请使用
presets/中精选的插件集合。 - 用于完全控制的插件模式:当您需要自定义加载、更小的包体积或深度集成时,请手动组合包。
- Facade API:通过更高级别的 API 处理工作簿、工作表、范围、文档、公式、命令和事件。
- Canvas 渲染引擎:通过跨文档类型共享的渲染层,支持大型可编辑文档界面。
- 可扩展的 UI:可与 React、Vue、Web Components 和特定于框架的应用程序外壳集成。
🤖 AI 智能体的办公工作流
Univer 的 AI 和协作功能将智能体的操作与交互式编辑和人工审阅连接起来:
- 程序化编辑:智能体通过结构化 API 检查和修改办公内容。
- 输出验证:智能体通过内容检查、渲染截图和布局诊断来检查结果。
- 工作树协作:智能体在隔离的草稿中工作,然后人员审阅其更改并决定合并哪些内容。
有关集成详情,请参阅 AI SDK 文档 (https://docs.univer.ai/ai)。
实时编辑、共享修订和工作树工作流需要相应的 Web SDK 和协作功能;包的可用性和许可因功能而异。
⚡ 快速开始
插件模式可提供完整的产品覆盖和精确的组合。对于支持的 Sheets、Docs 和 Node 配置文件,预设模式提供了更简短的精选设置。
插件模式
插件模式让您对包、样式导入、区域设置合并、Facade API 注册和插件配置有更底层的控制。
pnpm add @univerjs/core @univerjs/design @univerjs/docs @univerjs/docs-ui @univerjs/engine-formula @univerjs/engine-render @univerjs/sheets @univerjs/sheets-formula @univerjs/sheets-formula-ui @univerjs/sheets-numfmt @univerjs/sheets-numfmt-ui @univerjs/sheets-ui @univerjs/ui
import { LocaleType, mergeLocales, Univer } from '@univerjs/core'
import { FUniver } from '@univerjs/core/facade'
import DesignEnUS from '@univerjs/design/locale/en-US'
import { UniverDocsPlugin } from '@univerjs/docs'
import { UniverDocsUIPlugin } from '@univerjs/docs-ui'
import DocsUIEnUS from '@univerjs/docs-ui/locale/en-US'
import { UniverFormulaEnginePlugin } from '@univerjs/engine-formula'
import { UniverRenderEnginePlugin } from '@univerjs/engine-render'
import { UniverSheetsPlugin } from '@univerjs/sheets'
import SheetsEnUS from '@univerjs/sheets/locale/en-US'
import { UniverSheetsFormulaPlugin } from '@univerjs/sheets-formula'
import SheetsFormulaEnUS from '@univerjs/sheets-formula/locale/en-US'
import { UniverSheetsFormulaUIPlugin } from '@univerjs/sheets-formula-ui'
import SheetsFormulaUIEnUS from '@univerjs/sheets-formula-ui/locale/en-US'
import { UniverSheetsNumfmtPlugin } from '@univerjs/sheets-numfmt'
import { UniverSheetsNumfmtUIPlugin } from '@univerjs/sheets-numfmt-ui'
import SheetsNumfmtUIEnUS from '@univerjs/sheets-numfmt-ui/locale/en-US'
import { UniverSheetsUIPlugin } from '@univerjs/sheets-ui'
import SheetsUIEnUS from '@univerjs/sheets-ui/locale/en-US'
import { UniverUIPlugin } from '@univerjs/ui'
import UIEnUS from '@univerjs/ui/locale/en-US'
import '@univerjs/design/lib/index.css'
import '@univerjs/ui/lib/index.css'
import '@univerjs/docs-ui/lib/index.css'
import '@univerjs/sheets-ui/lib/index.css'
import '@univerjs/sheets-formula-ui/lib/index.css'
import '@univerjs/sheets-numfmt-ui/lib/index.css'
import '@univerjs/engine-formula/facade'
import '@univerjs/ui/facade'
import '@univerjs/sheets/facade'
import '@univerjs/sheets-ui/facade'
import '@univerjs/sheets-formula/facade'
import '@univerjs/sheets-numfmt/facade'
const univer = new Univer({
locale: LocaleType.EN_US,
locales: {
[LocaleType.EN_US]: mergeLocales(
DesignEnUS,
UIEnUS,
DocsUIEnUS,
SheetsEnUS,
SheetsUIEnUS,
SheetsFormulaEnUS,
SheetsFormulaUIEnUS,
SheetsNumfmtUIEnUS,
),
},
})
univer.registerPlugin(UniverRenderEnginePlugin)
univer.registerPlugin(UniverFormulaEnginePlugin)
univer.registerPlugin(UniverUIPlugin, { container: 'app' })
univer.registerPlugin(UniverDocsPlugin)
univer.registerPlugin(UniverDocsUIPlugin)
univer.registerPlugin(UniverSheetsPlugin)
univer.registerPlugin(UniverSheetsUIPlugin)
univer.registerPlugin(UniverSheetsFormulaPlugin)
univer.registerPlugin(UniverSheetsFormulaUIPlugin)
univer.registerPlugin(UniverSheetsNumfmtPlugin)
univer.registerPlugin(UniverSheetsNumfmtUIPlugin)
const univerAPI = FUniver.newAPI(univer)
univerAPI.createWorkbook({})
预设模式
预设是精选的 Univer 插件集合,包含必要的 Facade API 注册和样式。
pnpm add @univerjs/presets @univerjs/preset-sheets-core
import { UniverSheetsCorePreset } from '@univerjs/preset-sheets-core'
import UniverPresetSheetsCoreEnUS from '@univerjs/preset-sheets-core/locales/en-US'
import { createUniver, LocaleType, mergeLocales } from '@univerjs/presets'
import '@univerjs/preset-sheets-core/lib/index.css'
const { univerAPI } = createUniver({
locale: LocaleType.EN_US,
locales: {
[LocaleType.EN_US]: mergeLocales(UniverPresetSheetsCoreEnUS),
},
presets: [
UniverSheetsCorePreset({
container: 'app',
}),
],
})
univerAPI.createWorkbook({})
您的页面需要一个容器:
<div id="app"></div>
在安装和基本使用指南、createUniver 参考和 Facade API 参考中了解更多内容。
🧩 预设模式 vs 插件模式
| 选择 | 何时使用 | 从此处开始 |
|---|---|---|
| 插件模式 | 您需要对包、配置的依赖、懒加载或自定义运行时组合进行严格控制。 | 本仓库的 examples/ 和架构指南 (https://docs.univer.ai/guides/recipes/architecture/univer) |
| 预设模式 | 您希望使用最小的配置即可获得一个可工作的 Sheets、Docs 或 Node 设置。 | 本仓库的 presets/ 和入门指南 (https://docs.univer.ai/guides/sheets/getting-started/installation) |
| 无头模式 | 您需要服务器端的工作簿/文档处理、公式计算或无需 UI 的自动化。 | 无头 Univer |
请将 @univerjs/* SDK 包保持在同一个协调的 Univer 发布线上,使用相同版本。独立发布的包,包括 @univerjs/icons 和 @univerjs/icons-svg,则使用包清单中声明的兼容版本,而非 SDK 版本。
如果您使用 Univer Pro 包,请将 @univerjs-pro/* 与匹配的协调发布线对齐。
有关 API 兼容性预期、实验性 API、内部 API 和弃用规则,请参阅 API 稳定性策略。
🧭 兼容性
- 浏览器运行时:Univer 使用 Chrome 88 目标进行编译,旨在支持 Edge
>=88、Firefox>=90、Chrome>=88、Safari>=14.1和 Electron>=12。 - Polyfills:Univer 依赖于
Intl.Segmenter。如果您的目标浏览器或运行时未提供它,请添加一个 polyfill,例如@formatjs/intl-segmenter。 - 构建工具:我们推荐使用 Vite、esbuild 或 Webpack 5。如果您的构建工具不支持
package.json中的exports字段(在 Webpack 4 中常见),您可能需要额外的路径映射。 - React:Univer 的视图层基于 React 18 构建,支持 React 18 和 19,并为 React 16.9+ 和 17 提供最低限度的兼容支持。
- Node.js 运行时:无头 Univer 支持 Node.js
>=18.17.0。开发此 monorepo 需要 Node.js>=22.18。
🛠️ 您可以构建什么
| 领域 | 开源功能 | Univer Pro 扩展 |
|---|---|---|
| Sheets | 工作簿、工作表、范围、选择、公式、数字格式、筛选、排序、数据验证、条件格式、超链接、批注、查找和替换、笔记、表格、图形集成以及可扩展的 UI 插件。 | 实时协作、编辑历史、导入/导出、打印、图表、数据透视表、迷你图、轮廓、形状、单元格内图形、数据连接器、服务器端计算和增强型公式功能。 |
| Docs | 丰富的文档模型、编辑 UI、列表、超链接、图形集成、批注、快速插入和共享文档架构。 | 协作、导入/导出、打印、增强的表格和列表、分栏、注释框、代码块、引用、形状和远程批注资源。 |
| Slides | 演示文稿数据模型和 UI 包正在积极开发中。 | 专业幻灯片模型和 UI、幻灯片导入/导出、图表和表格模型/UI 插件以及共享的形状编辑基础设施。 |
| Bases | 在 Univer 的插件、命令和模型架构之上构建自定义的结构化数据体验。 | 基础数据库模型、命令、公式集成、工作台 UI、字段编辑器和渲染引擎视图。 |
| Runtime | 浏览器应用程序、Node.js 无头使用、Web Worker/RPC 模式、多实例使用和面向服务器的自动化。 | 协作客户端/服务器包、Node.js 协作客户端、Pro 服务器服务、SSR、计算委托、服务器端计算和变更集重放工具。 |
| Integrations | React、Vue、Web Components、框架模板、主题、本地化和自定义插件。 | Pro 预设和企业部署包。 |
Sheets 是当今最成熟的产品界面。Docs 和 Slides 共享 Univer 的架构,并在同一 SDK 中持续发展。
🔓 开源版与专业版
此代码仓库包含 Univer 的开源核心和第一方 OSS 插件。Univer Pro 作为商业扩展层单独开发,用于高级产品界面、协作、服务器功能和企业集成。
| 类别 | 开源 | Univer Pro / 商业 |
|---|---|---|
| 基础 | 核心 SDK、插件系统、渲染引擎、公式引擎、Facade API、主题、国际化和框架适配器。 | Pro 预设和企业部署包。 |
| Sheets | 核心电子表格编辑、公式、数字格式、筛选/排序、数据验证、条件格式、笔记、表格、超链接、批注、图形、查找和替换。 | 协作、编辑历史、导入/导出、打印、图表、数据透视表、迷你图、轮廓、形状、单元格内图形、数据连接器、范围预处理和增强型公式引擎功能。 |
| Docs | 文档模型和编辑器 UI、列表、超链接、批注、快速插入和图形集成。 | 协作、导入/导出、打印、增强的表格/列表、分栏、注释框、代码块、引用、形状和远程线程评论资源。 |
| Slides | 开源的演示文稿模型和 UI 包。 | 专业幻灯片模型/UI 包、幻灯片导入/导出、图表、表格和可复用的形状编辑器 UI。 |
| Bases | 用于自定义数据为中心产品的可扩展插件架构。 | 基础数据库核心模型、命令、变更、公式集成、工作台 UI、字段编辑器和渲染引擎集成。 |
| 服务器和运行时 | Node.js | 协作客户端/服务器、Node.js 协作客户端、Pro 服务器服务、SSR、计算委托、服务器端计算、变更集重放工具、协作工作台 |
相似文章
Show HN: Extend UI – 面向现代文档应用的开源UI工具包
Extend UI 是一个面向现代文档应用的开源UI工具包,提供PDF、DOCX、XLSX和CSV文件的查看器,以及边界框引用、文件上传、电子签名等功能。
Euro-Office: 开源网页办公套件首个版本来了
开源网页办公套件Euro-Office的首个稳定版本已发布,旨在为Microsoft Office和Google Docs等专有软件提供替代方案。
Unvendor
Unvendor 是一款将用户愿望转化为交互式画布的产品,用于规划、预算和语言练习,强调一种新的AI交互方法,将界面置于传统聊天之上。
Launch HN: Unlayer (YC W22) – 为你的应用添加邮件和文档构建器
Unlayer 在 Hacker News 上发布,作为一个将邮件、页面、文档和弹窗构建器嵌入应用的平台,具备 AI 功能和开发者 API。
@elonmusk:Excel、PowerPoint、Word 等插件即将上线
埃隆·马斯克宣布,适用于 Microsoft Office 应用(包括 Excel、PowerPoint 和 Word)的插件即将推出。