dream-num/univer

GitHub Trending (daily) 工具

摘要

Univer 是一个开源 SDK,用于创建可嵌入的办公应用程序,如电子表格、文档和演示文稿,并具备可定制的插件架构。

AI 智能体的办公运行环境 —— 电子表格、文档、幻灯片、画布、关系型表格和 PDF 统一于一个运行时。
查看原文
查看缓存全文

缓存时间: 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 OfficeDeepSeek Harness 的办公插件,具有关联内容、验证机制以及用于智能体协作的隔离工作树。
Univer CLI供智能体在本地命令行工作区中创建、编辑、检查和交付办公内容的工具。
WorkBuddy 的 Univer OfficeWorkBuddy 的本地办公集成,支持 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、计算委托、服务器端计算和变更集重放工具。
IntegrationsReact、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、计算委托、服务器端计算、变更集重放工具、协作工作台

相似文章

Unvendor

Product Hunt

Unvendor 是一款将用户愿望转化为交互式画布的产品,用于规划、预算和语言练习,强调一种新的AI交互方法,将界面置于传统聊天之上。