📌 项目地址dream-num/univer | ⭐ 15,186 颗星 | 🔧 TypeScript | 📜 未标注

📌 项目地址:dream-num/univer | ⭐ 15,186 | TypeScript

先说一个常见困境

你的产品需要嵌一个能编辑的表格,或者要读写带公式的 Excel 文件。摆在面前的路通常有两条:接 OnlyOffice / Collabora 这类成品套件,等于把别人的整个应用塞进你的页面;或者用 Handsontable、Luckysheet 这类表格组件,功能够用但公式引擎和文件格式支持都得自己补。

Univer 走了第三条路:把办公能力拆成构建块,做成 SDK。表格、文档、演示文稿三样都覆盖,你自己决定组装哪些。

几个关键设计

我读完 README 后觉得值得展开的有四点:

Canvas 渲染 + 独立公式引擎。 用 DOM 渲染的表格组件,数据量一大就开始卡。Univer 用 Canvas 画界面,公式计算单独走引擎,这是应对大型工作簿的路数。

插件化。 功能可以组合、替换、懒加载。不需要整套东西都搬进来,只要表格就装表格的部分。赶时间的话也有预设(presets)可以快速起步。

Node.js 无头运行。 这是它最特别的一点。同一套架构可以在服务端跑工作簿和文档逻辑,浏览器和服务端共用一套 Facade API。官方 README 里专门有一节讲”Headless for AI infrastructure”,给 Agent、自动化脚本、服务端批处理用。

统一的 Facade API。 不管在浏览器还是 Node.js,操作 workbook、range、公式、文档的接口是一致的。写一次逻辑,两端都能跑。

它是什么,不是什么

README 里说得很直白:”Univer is not a spreadsheet file viewer only. It is a framework for building your own productivity surface.” 翻译过来:这不是一个只读查看器,是一个搭生产力界面的框架。

所以它的目标用户是做产品集成的开发者:SaaS 里嵌协作文档、BI 工具里放可编辑报表、AI 应用里让 Agent 读写工作簿。如果你只是想给用户看个 Excel 文件,杀鸡用了牛刀。

一个提醒:README 里没有代码

我翻了整个 README,没有任何安装命令和代码片段。它的用法都在官方文档里:

  • 文档:https://docs.univer.ai
  • 示例展示:https://docs.univer.ai/showcase
  • API 参考:https://docs.univer.ai/reference/classes/univer

从架构描述看,接入有两条路:浏览器端走框架适配器加预设,搭带 UI 的编辑器;服务端用 headless 运行时做文件处理。两者操作数据的代码应该是同一套 Facade API。但这只是我从 README 推断的,具体写法去看文档。

选型前想清楚的

  • 15k Star,TypeScript 写的,README 有简体中文版,有 Discord 社区,国内团队(dream-num)维护,沟通成本不高。
  • 办公套件功能面太广,你关心的具体能力(某个公式、某种导入导出格式)支不支持,去 Showcase 里确认,别只看特性列表。
  • 许可证信息以仓库 LICENSE 文件为准,商用前自己核对条款。
  • 如果你的需求只是文件读写,ExcelJS 这类库更轻。Univer 的价值在公式引擎、渲染、交互这一整套,用不到就别上。
这篇文章对你有帮助吗?

发表回复