univer

让 AI 像操作对象一样读写表格文档幻灯片

Univer 是一个面向 AI Agent 的办公套件运行时,把电子表格、文档、幻灯片、画布、关系型表格和 PDF 统一到同一套 TypeScript 运行时中。它解决的核心问题是:传统办公软件各自为政,AI 难以跨文档类型读写和操作,而 Univer 提供统一的数据模型、渲染引擎和协作能力,让开发者可以像调用 API 一样让 AI 生成表格、编辑文档、制作幻灯片或解析 PDF。核心能力包括多类型文档的实时协作、公式计算、数据表格关系建模、画布自由布局,以及可嵌入的 SDK。它不只是一个在线表格,而是把办公文档抽象成可编程对象,方便 AI Agent 直接操作,适合需要深度集成办公能力的应用。

开源 freemium 办公效率
访问官网 ↗ GitHub ↗ 文档 ↗
GitHub 星标 ★ 14685
维护状态 活跃
是否开源
定价模式 freemium

项目数据

分类办公效率
开发团队dream-num
所属国家
定价模式freemium
价格说明开源SDK免费,云端服务提供免费额度及付费方案
访问状态
是否开源
开源协议Apache-2.0
主要语言TypeScript
技术栈/模型board,collaboration,data-table,doc,docx,excel,grid,pdf,ppt,pptx,presentation,sdk,sheet,slides,spreadsheet,table,word,wordprocessor,xlsx
GitHub 星标★ 14685
30天Star增速
HF 下载量
上线时间2022-09-29 00:00:00
最近更新2026-09-21 00:00:00
维护状态活跃
中文支持
访问方式
移动端支持
综合评分
收录时间2026-09-22
浏览次数0

使用教程

难度:进阶 约 15 分钟 部署方式:库/依赖 7 步

环境要求

  • Node.js 运行环境(README 未指定具体版本)
  • 使用 pnpm 作为包管理器(README 全部命令均为 pnpm add)
  • 一个可运行的前端工程,页面中需有承载 Univer 的容器元素
  • 若在服务端使用,需 Node.js 环境(README 称 Facade API 同时支持浏览器与 Node.js)

安装与启动步骤

  1. 1准备页面容器

    在页面中放置一个带 id 的容器,Univer 的 UI 会挂载到该元素上,示例 id 为 app。

  2. 2安装插件模式依赖

    插件模式可精细控制包、样式、语言包与 Facade 注册,依赖较多但可控性最强。

    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
  3. 3引入模块与样式

    必须导入各 UI 包的 index.css,并导入各包的 /facade 入口,否则样式缺失、Facade API 不可用。

    import { LocaleType, mergeLocales, Univer } from '@univerjs/core'
    import { FUniver } from '@univerjs/core/facade'
    import { UniverDocsPlugin } from '@univerjs/docs'
    import { UniverDocsUIPlugin } from '@univerjs/docs-ui'
    import { UniverFormulaEnginePlugin } from '@univerjs/engine-formula'
    import { UniverRenderEnginePlugin } from '@univerjs/engine-render'
    import { UniverSheetsPlugin } from '@univerjs/sheets'
    import { UniverSheetsFormulaPlugin } from '@univerjs/sheets-formula'
    import { UniverSheetsFormulaUIPlugin } from '@univerjs/sheets-formula-ui'
    import { UniverSheetsNumfmtPlugin } from '@univerjs/sheets-numfmt'
    import { UniverSheetsNumfmtUIPlugin } from '@univerjs/sheets-numfmt-ui'
    import { UniverSheetsUIPlugin } from '@univerjs/sheets-ui'
    import { UniverUIPlugin } from '@univerjs/ui'
    
    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'
    im
  4. 4创建实例并注册插件

    用 new Univer 传入 locale 与合并后的语言包,再逐个 registerPlugin;UI 插件的 container 需与页面容器 id 一致。

    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)
  5. 5创建空白工作簿

    通过 FUniver.newAPI 拿到 Facade API,再调用 createWorkbook 渲染出表格界面。

    const univerAPI = FUniver.newAPI(univer)
    univerAPI.createWorkbook({})
  6. 6安装 Preset 模式依赖

    若只需 Sheets/Docs/Node 等受支持场景,可用 Preset 模式,包与配置更少,开箱即用。

    pnpm add @univerjs/presets @univerjs/preset-sheets-core
  7. 7用 Preset 初始化

    用 createUniver 直接传入 presets 数组,Preset 已内置必要的 Facade 注册与样式引入。

    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({})

关键配置

配置项必填说明示例
locale设置界面语言,README 示例使用英文枚举LocaleType.EN_US
locales注册语言包,需用 mergeLocales 合并各模块语言文案mergeLocales(UniverPresetSheetsCoreEnUS)
containerUI 插件挂载的容器元素 id,需与页面上的 id 一致app
presetsPreset 模式下传入预设集合,替代逐个注册插件[UniverSheetsCorePreset({ container: 'app' })]

如何确认成功

页面容器中出现可编辑的电子表格工作簿界面(或 Node 端成功执行 createWorkbook 不报错),即为启动成功。

常见问题

Q:插件模式和 Preset 模式我应该选哪个?

A:需要完整产品覆盖和精确裁剪时用插件模式,可控制包、样式、语言包与 Facade 注册;只做 Sheets、Docs 或 Node 等受支持场景时用 Preset 模式,配置更短更快。

Q:为什么不导入 CSS 界面会错乱?

A:README 明确要求手动导入 @univerjs/design、@univerjs/ui、@univerjs/docs-ui、@univerjs/sheets-ui 等包的 lib/index.css,遗漏就会缺少样式。

Q:调用 univerAPI 时提示方法不存在怎么办?

A:需要额外 import '@univerjs/xxx/facade' 各包的 facade 入口(如 sheets/facade、ui/facade),README 的插件模式示例中已列出这些导入。

Q:可以在 Node.js 服务端运行吗?

A:可以,README 说明 Facade API 同时适用于浏览器和 Node.js,可用同一套架构在服务端处理工作簿/文档。

注意事项

  • README 只提供了 pnpm 的安装命令,未给出 npm/yarn 的安装方式,请勿自行替换包管理器。
  • 页面必须有 id 为 app(或自定义后同步传给 container)的容器元素,否则 UI 无处挂载。
  • 各 UI 包的 index.css 与各包的 /facade 导入顺序在示例中已给出,建议原样保留。
  • README 未说明 Node 版本要求、开发服务器启动或构建命令,相关步骤需参考官网文档。

核心亮点

  • 统一运行时覆盖表格/文档/幻灯片/画布/PDF,避免多套引擎拼装
  • TypeScript 编写,提供 SDK 和插件机制,方便二次开发与 AI 集成
  • 支持实时协作和公式计算,具备生产级办公能力

不足之处

  • 项目体量大,上手和定制需要较高学习成本
  • 部分高级功能(如 PDF 编辑)成熟度可能不如专注型工具

适用场景

  • 在 SaaS 产品中嵌入可编程电子表格,让 AI 自动生成报表
  • 构建多人实时协作的文档/幻灯片编辑平台
  • 为 AI Agent 提供统一办公文档读写接口,实现跨类型自动化

替代项目

Luckysheet、OnlyOffice、Collabora Online

项目介绍

univer 是办公效率领域的开源项目,由 dream-num 开发,2022 年首次发布。

在全站 12,909 个收录项目中,它的 GitHub 星标数(14,685)位列前 4%,在办公效率分类的 138 个项目里位列前 9%。

项目目前处于活跃维护状态,最近一次代码更新于 2026-09-21。开源SDK免费,云端服务提供免费额度及付费方案。

它主要面向的使用场景是:在SaaS产品中嵌入可编程电子表格,让AI自动生成报表。同类可对比的替代方案包括 Luckysheet、OnlyOffice、Collabora Online。

上一篇:zettelrobbe

下一篇:docx-editor

同类项目推荐

sunshine-control-panel 开源

一站式管理游戏库、监控内存,AI 助手加持,让大屏启动更高效。

Sunshine Foundation 大屏桌面管理器 | Tauri + Vue 3,游戏库管理、米塔AI助手、内存监控···

★ 443 2026-08-09
Stirling PDF 开源

本地部署 PDF 工具箱

#1 PDF Application on GitHub that lets you edit PDFs on any device anywhere

★ 92571 2026-08-19
obsidian-md2wechat 开源

一键将 Obsidian 笔记排版成公众号文章,告别手动调格式

Obsidian → WeChat | Obsidian 插件一键排版发布到微信公众号,键排版发布到微信公众号:···

★ 314 2026-08-09
pdf2md 开源

浏览器里直接把 PDF 变成 Markdown,不用上传,隐私安全。

Browser based tool to convert PDFs to Markdown

★ 378 2026-08-09