夜雨聆风学习资料网

ARTICLE · 1100178

Univer 把 Office 装进产品

Univer 把 Office 装进产品

想在自家产品里嵌一个能编辑的「Excel」?五年前,国内开发者的标准答案是 Luckysheet——那个 16,000+ star 的开源表格。后来它停更了,仓库描述变成了一句话:"Luckysheet upgraded to Univer"。

2026 年 9 月 24 日,正统续作 Univer 1.0 正式发布——恰好是项目创建整整四年后。这次它不止做表格了:官方给它的定位是 "The Office Harness for AI Agents",一个 AI 时代的开源 Office SDK。

🔥 1. Univer 是什么

Univer 由 DreamNum 团队开发,Apache-2.0 协议开源,目前 21,400+ star,主仓库 TypeScript 写就、发布五天仍在高频提交。一句话概括:把表格、文档、幻灯片等办公编辑器做成可嵌入你产品的 SDK——不强迫你用托管应用,也不限定 UI。

1.0 版本一口气带来 六大编辑器,全部跑在同一个运行时上:

六大编辑器一览

📊 Sheets 电子表格 · 📄 Docs 富文本文档🎬 Slides 幻灯片 · 🎨 Boards 自由画布白板🗂️ Bases 结构化数据(类 Airtable) · 📕 PDF 查看与编辑

架构上它有三个鲜明特征:同构(同一套 Facade API,浏览器跑 UI、Node.js 跑无头计算)、插件化(每个能力都是可拆装的插件,按需组合)、Canvas 渲染(大面积表格和长文档保持流畅)。对 AI 应用来说还有第四个:官方提供 AI SDK,Agent 能通过结构化 API 直接读写文档、校验输出。

⚡ 2. 1.0 新特性速览

这次大版本从 2026 年 4 月开始打磨,重点全在硬骨头上的优化。

公式引擎重写

公式注册与计算调度被抽成共享模块,Sheets、Bases、Docs 内联公式、公式联动图形全都复用;编辑单元格后的增量计算和共享公式查找更快,对 Excel 的兼容性(结构化引用、数组公式、隐式交集、日期系统)进一步对齐。

几个值得单独点名的新能力:

// 3D 引用:一网打尽连续工作表的同一单元格 =SUM(Jan:Mar!B2)  // 跨工作簿引用:源工作簿加载后即可引用 =SUM('[Sales.xlsx]Data'!B2:B100)  // 图形绑定公式:形状显示销售总额,数据一变跟着变 =SUM(B2:B100)

其他更新还包括:Docs 的分节分页、目录、脚注与 LaTeX 公式;Slides 重构了母版与版式编辑;Boards 支持思维导图和 Mermaid 导入;Bases 提供多视图、关联记录和仪表盘;PDF 编辑器支持页管理与批注。配套的 Server SDK(协作与文件转换)和 AI SDK(Agent 工作流)也在 1.0 一并亮相。

🚀 3. 安装上手:三种模式对号入座

💡 环境要求:Node.js ≥ 18.17,浏览器 Chrome ≥ 88 / Firefox ≥ 90 / Safari ≥ 14.1;构建工具推荐 Vite / Webpack 5;React 18、19 均支持。注意所有 @univerjs/* 包要保持在同一条版本线上。

① 预设模式(推荐起步)——一条命令装上经过官方搭配的插件合集:

npm install @univerjs/presets @univerjs/preset-sheets-core
// main.js —— 浏览器里跑起一个电子表格 import { UniverSheetsCorePreset } from '@univerjs/preset-sheets-core' import ZhCN from '@univerjs/preset-sheets-core/locales/zh-CN' import { createUniver, LocaleType, mergeLocales } from '@univerjs/presets' import '@univerjs/preset-sheets-core/lib/index.css'  const { univerAPI } = createUniver({   locale: LocaleType.ZH_CN,   locales: { [LocaleType.ZH_CN]: mergeLocales(ZhCN) },   presets: [UniverSheetsCorePreset({ container: 'app' })], }) univerAPI.createWorkbook({})   // 页面需要 <div id="app">

② 插件模式(完全控制)——手动注册十几个 @univerjs/* 包,自己管样式导入、按需加载和 bundle 体积,适合深度集成的大项目。

③ 无头模式(服务端/AI)——不带 UI 在 Node 里跑,做数据加工、报表生成、Agent 自动化:

npm install @univerjs/presets @univerjs/preset-sheets-node-core

🛒 4. 真实示例:Node 无头模式实测

光看文档不过瘾,我在 Linux 沙箱里真实跑了一遍:用无头模式建一张「社区团购订单表」,让 Univer 公式引擎算钱。安装约 2 分钟,78 个依赖一次装完:

// demo.mjs(完整可复现,Node 20 实测通过) import { UniverSheetsNodeCorePreset } from '@univerjs/preset-sheets-node-core' import ZhCN from '@univerjs/preset-sheets-node-core/locales/zh-CN' import { createUniver, LocaleType, mergeLocales } from '@univerjs/presets'  const { univerAPI } = createUniver({   locale: LocaleType.ZH_CN,   locales: { [LocaleType.ZH_CN]: mergeLocales(ZhCN) },   presets: [UniverSheetsNodeCorePreset()],      // 无 UI 的表格预设 })  const sheet = univerAPI.createWorkbook({}).getActiveSheet() sheet.setName('团购订单')  // 写入数据 sheet.getRange(0, 0, 5, 3).setValues([   ['商品', '单价', '份数'],   ['红心猕猴桃', 12.9, 23],   ['云南小香薯', 9.9, 35],   ['土鸡蛋30枚', 25.8, 18],   ['阳光玫瑰葡萄', 19.9, 27], ])  // D 列写公式,再加三个汇总公式 sheet.getRange(1, 3, 4, 1).setFormulas([   ['=B2*C2'], ['=B3*C3'], ['=B4*C4'], ['=B5*C5']]) sheet.getRange(5, 3).setFormula('=SUM(D2:D5)') sheet.getRange(6, 3).setFormula(   '=INDEX(A2:A5,MATCH(MAX(C2:C5),C2:C5,0))')

跑 node demo.mjs,再读取 D 列结果——全部由 Univer 公式引擎真实算出:

浏览器端同理:把预设换成 preset-sheets-core 并指定容器,就能得到带完整 UI 的电子表格——菜单、公式栏、右键菜单一应俱全,样式与交互接近桌面 Office。

⚠️ 实测踩坑三条:① 无头预设的包名是 preset-sheets-node-core,网上旧教程写的 preset-sheets-node 会 404;② 公式计算是异步的,写完立刻 getValue() 会拿到 null,轮询等几百毫秒即可;③ createWorkbook 时预填 cellData 再 setFormula 偶发不生效,稳妥路线是 setValues() + setFormulas() 全部走 Facade API。

⚖️ 5. 开源 vs Pro:边界要先搞清

Univer 采用「开源核心 + 商业 Pro」双轨。开源部分(Apache-2.0)可以独立商用,Pro 不是必需品。选型前先看清单:

模块
✅ 开源免费
💎 Pro 商业版
Sheets
编辑、公式、筛选排序、数据验证、条件格式、批注、查找替换
多人协作、导入导出、打印、图表、透视表、迷你图
Docs / Slides
文档模型与编辑 UI、列表、超链接、批注
协作、导入导出、分栏、代码块、母版编辑
运行时
Node 无头、Web Worker、React/Vue 适配
协作服务端、SSR、服务端计算、变更回放

生态也在快速成形

🌐 Univer Workspace:官方开源的可自托管协作空间⌨️ Univer CLI:本地命令行工作区,给 Agent 用🔌 univer-mcp:MCP 集成,自然语言驱动表格🤖 univer-sdk-skills:给 AI Agent 的技能包指令集📄 官方文档全中文:docs.univer.ai

适合谁?要在 SaaS/ERP/CRM 里嵌表格或文档编辑的开发团队;做数据报表自动生成的后端同学;以及给 AI Agent 找「办公软件操作手」的 AI 应用开发者。如果你只是想要一个免费的在线 Excel 替代品,它反而不如 WPS 直接——它本质是给开发者造产品用的。

项目地址:github.com/dream-num/univer官方文档:docs.univer.ai(含中文版快速上手)

相关学习资料