ARTICLE · 1072140
把 Excel 拆成零件——Univer:一个让你在自己网页里「造 Office」的开源引擎
做个内部管理系统,页面里要放一张能改公式、能筛选的表格,你现在会怎么办?要么 iframe 里塞个第三方编辑器,要么自己拿表格组件糊一个。糊着糊着你会发现,写公式引擎的时间比写业务需求还多。
有个开源项目专门解决这个麻烦,叫 Univer。
一句话:Univer 是一个开源 SDK,把表格、文档、演示文稿这些 Office 能力做成零件,让你嵌进自己的应用里。背后是一家叫 DreamNum 的公司,团队早年出名的作品是 Luckysheet,网页表格里攒了几万 star 的老牌项目。Univer 算是它的推倒重来:TypeScript 写成,底层用 Canvas 画表格而不是堆 DOM,自带公式引擎。主仓库现在 1.7 万多个 star,Apache-2.0 协议,商用免费。
打个比方。Excel、WPS 是整车,Univer 是发动机加底盘。你拿它能造自己的车,外观、功能、怎么收费,都是你说了算。这也是为什么用它的基本都是厂商和平台团队,而不是普通办公用户。
图 1:一套内核,撑起四种文档
↓
Univer 内核
↓
表格最成熟,演示还在完善中
他们管这个设计叫 one runtime:四类工具共用同一套数据和计算,一份文件里可以同时放一张活表格、一段引用它的文档。想法挺大,目前落地程度你可以理解为表格打头,其他几个跟上。
老一代网页表格方案卡在哪?单元格一多,DOM 节点爆炸,滚动都费劲。Univer 干脆把整个表格画在一块 Canvas 画布上,公式计算走独立引擎。官网给的数据是 500 多个内置函数,一百万条公式秒级算完,百万行数据做透视毫秒返回。
厂商自己跑的分,听听就好。但方向没问题:网页表格想追上桌面体验,Canvas 这条路绕不开。
Univer 最新的口号换成了「The Office Harness for AI Agents」,大意是:给 AI 智能体操作 Office 文件铺的那层轨道。这跟 Luckysheet 时代是两个故事了。
它提供了 MCP 服务,Claude Code、Codex 这类编程智能体可以直接读写表格文件;还做了一个类 Git 的协作模型,多个智能体各开一个隔离的工作区去改同一份文件,改完由人来审查合并。你改一格,AI 改另一格,同时动手。
图 2:人和 AI 同时改一份文件
↓ 各开一个隔离工作区
↓
我个人的看法:网页表格组件市面上不缺,缺的是让 AI 改完文件能自己验证、能回滚的机制。把 Office 文件变成结构化、可校验的对象,这个思路比多一个表格控件有价值得多。
给开发的接口分三档,从省事到灵活:
预设模式
装个包,十行代码出一张能用的表。先跑通选这个。
插件模式
按需挑功能,界面和交互随便拆,做深度定制用。
无界面模式
不带界面跑在 Node.js 里,服务器批量算公式、生成报表。
最省事的那条路,长这样(示意,以官方文档为准):
# 装一个表格预设
npm i @univerjs/presets @univerjs/preset-sheets-core
import
{ createUniver, LocaleType } from'@univerjs/presets';
{ UniverSheetsCorePreset } from'@univerjs/preset-sheets-core';
const { univerAPI } = createUniver({ locale: LocaleType.ZH_CN, presets: [...] });
univerAPI.createWorkbook({}); // 一个页面里的 Excel,出来了
高保真的 xlsx、docx 导入导出,实时协作,图表和透视表,这些放在收费的 Univer Pro 里。开源版能跑通核心功能,但上面这几样恰恰多数企业躲不开。选型前把预算算清楚。
演示文稿还在开发中,别指望现在拿它做 PPT 产品。
这两年 API 改动不少,网上老文章和实际代码经常对不上,建议直接去官方 Playground 看现在的写法。
想深度定制的话,插件、命令、渲染那套机制得啃一阵子。它给你的自由度,背后都是学习成本。
SaaS 厂商、内部工具团队、要给 AI 智能体接 Office 能力的开发者,值得花时间评估一下。如果你只是想让人在网页里预览个 Excel 文件,用不着它,太重了。
项目和官网:
github.com/dream-num/univer
univer.ai