夜雨聆风学习资料网

ARTICLE · 1071209

一款免费、开源的 Office 引擎,把在线 Excel、Word、PPT 嵌进你自己的产品,Star 16K+ !

一款免费、开源的 Office 引擎,把在线 Excel、Word、PPT 嵌进你自己的产品,Star 16K+ !

想在自家产品里加一块在线表格、在线文档,一问商业组件报价,先劝退一半人;真要自己从零写一个编辑器内核,光标、选区、撤销重做、公式计算、协同……光想想就头皮发麻。

一句话介绍 Univer:一套开源的 Office 引擎,把表格、文档、幻灯片、画布、多维表做成了一组可复用的 SDK,能直接嵌进你自己的产品里。

项目简介

Univer 来自 dream-num 团队,2022 年底开源至今一直在活跃迭代,用 TypeScript 写成,Apache-2.0 协议,GitHub 上已经攒了 1.6 万+ Star。它不只是一个「在线表格」,而是一整套 Office 引擎:底层是自研的 Canvas 渲染引擎加公式引擎,上层把每项能力都拆成插件,你按需拼装。同一套逻辑既能在浏览器里渲染出完整的编辑界面,也能在 Node.js 里做无头处理,前端后端一套代码。

换句话说,它不给你一个成品文档站,而是给你一堆高质量的积木,让你在自己的 SaaS、内部系统、BI 工具里,搭出「自己的 Excel / Word / PPT」。

核心特性

  • 六件套齐活:Spreadsheet(表格)、Docs(文档)、Slides(幻灯片)、Canvas(画布)、Relational Table(多维表)已经可用,PDF 也在规划中,它们共享同一套存储与计算,内容可以互相引用、数据联动。
  • Canvas 渲染 + 公式引擎:官方标称能流畅渲染一千万单元格,内置 500+ 函数、180+ 形状、31 种可编辑图表——大表格不卡,才是能拿去做产品的底线。
  • 插件化架构:每项能力都是可组合的插件,要什么装什么;想快就用打包好的预设模式,想省体积就手动拼插件模式。
  • 同构运行:浏览器 UI 与 Node.js 无头处理共用一套代码,服务端批量处理表格、文档不必另写一套逻辑。
  • 一套 Facade API:工作簿、工作表、区域、公式、文档、命令、事件统一接口,上手成本低。
  • 适配主流框架:React、Vue、Web Components、Angular、Next.js、Astro 都有现成集成方式,暗色主题也一并做了适配。

怎么用

最快的方式是先在线玩一下:官方文档的 Quickstart 页直接给了「Play Online」入口,不用装任何东西就能点开一个能用的 Univer Sheets。

想塞进自己的项目,用包管理器装核心包即可,以 pnpm 为例:

pnpm add @univerjs/core @univerjs/design @univerjs/docs @univerjs/docs-ui \  @univerjs/engine-formula @univerjs/engine-render @univerjs/sheets \  @univerjs/sheets-formula @univerjs/sheets-numfmt @univerjs/sheets-ui @univerjs/ui

插件模式下,核心就是一个 Univer 实例加按需注册的插件,挂到你自己的容器里:

import { LocaleTypeUniver } from'@univerjs/core'import { UniverRenderEnginePlugin } from'@univerjs/engine-render'import { UniverFormulaEnginePlugin } from'@univerjs/engine-formula'import { UniverUIPlugin } from'@univerjs/ui'import { UniverSheetsPlugin } from'@univerjs/sheets'import { UniverSheetsUIPlugin } from'@univerjs/sheets-ui'const univer = newUniver({ localeLocaleType.ZH_CN })univer.registerPlugin(UniverRenderEnginePlugin)univer.registerPlugin(UniverFormulaEnginePlugin)univer.registerPlugin(UniverUIPlugin, { container'app' })univer.registerPlugin(UniverSheetsPlugin)univer.registerPlugin(UniverSheetsUIPlugin)

嫌手写啰嗦的话,预设模式把常用插件打包好了,几行就能起一个能用的表格应用;官方还提供了单个 HTML 文件版本,不装任何前端工具链也能先跑起来。

效果长啥样

官方 Showcase 里放了一堆用 Univer 搭出来的真家伙:个人财务管家、年度家庭预算、公司组织架构图、员工休假排期表、施工进度甘特图、工作分解与预算表……它们不只是「能显示」,公式、图表、引用、形状都在真实计算和联动。

为什么值得用

对个人和小团队:免费、开源、可自托管,想给自己搭一个私人表格或文档工具,或者给内部小系统加一块表格功能,不用再为商业组件付按年订阅的钱,数据也留在自己手里。

对开发者:编辑器里最难啃的核(光标、选区、撤销重做、公式计算、渲染)都替你写好了,你只管做业务;插件加 Facade API 的组合,让定制和二次开发都有清晰入口。

对企业:要把 Office 能力嵌进合同、报表、配置、审批这些真实业务场景,Univer 给的是一个可以深度定制的底座,而不是改不动的黑盒;Apache-2.0 协议对商用也友好。

顺带一提,它也为 AI Agent 预留了工作流,Agent 可以通过结构化 API 读写文档、校验输出——但这只是可选的加分项,就算完全不碰 AI,Univer 本身依然是一套扎实的 Office 引擎。

写在最后

「办公套件」过去是一条被巨头把守的赛道,Univer 用一套开源 SDK,把它拆成了任何人都能取用的零件。想让自家产品里长出一个 Excel,或者单纯想搞明白在线表格是怎么跑起来的,都值得 clone 下来翻一翻。

https://github.com/dream-num/univer

相关学习资料