
一、Univer 是什么:把 Office 装进 SDK 的「办公操作系统」
1.1 一句话定位
Univer 是一个面向 AI Agent 时代的办公 SDK。它把传统上需要分别集成 SheetJS、docx.js、Apache POI 等多个库才能搞定的电子表格、文档、演示稿、数据库、画板五大引擎,封装在一个统一的 TypeScript 包里,提供插件架构、Canvas 渲染引擎、专用公式引擎,以及一套 Facade API,可以在浏览器和 Node.js 上运行。
1.2 为什么 GitHub 突然爆了
单日 1142 颗星的爆发不是偶然。三个信号叠加:
| 信号 | 数据 | 含义 |
|---|---|---|
| 总星数 | 16,467 | 已经过了「玩具级」门槛,进入生产可用区间 |
| Fork | 1,453 | Fork/Star ≈ 8.8%,高于成熟项目平均水平,说明实际有人在二次开发 |
| Topics | board、collaboration、data-table、doc、docx、excel、grid、pdf、ppt、pptx | 全是高频办公格式,不是冷门方向 |
Topics 列表里覆盖了 excel、docx、pdf、pptx——这是 Office 全家桶,不是某单个文件格式。无论你的 Agent 要生成报价单、读取历史合同,还是把数据导出成 PDF 报告,理论上都能用同一个 SDK 搞定。
二、五大引擎怎么拼成一个 SDK
2.1 Engine → Plugin → Facade 三层模型
Univer 的核心架构用了经典的「内核 + 插件 + 接口」三层设计:
| 层级 | 职责 | 举例 |
|---|---|---|
| Engine | 渲染、事件、数据模型 | SpreadsheetEngine、DocEngine |
| Plugin | 功能模块,按需加载 | @univerjs/sheets-formula、@univerjs/sheets-filter |
| Facade | 对外 API,给开发者调用 | const workbook = univerAPI.createWorkbook(…) |
这套设计的价值在于:你不需要引入整个套件。如果你只想在浏览器里渲染一个 Excel 表格,引入 spreadsheet 引擎和它对应的几个插件就够了,剩下的 Doc/Slides/Bases/Board 完全不加载——包体积可控,首屏更快。
2.2 五大引擎各自干什么
| 引擎 | 对应 Office 模块 | 核心能力 |
|---|---|---|
| Spreadsheet | Excel | 公式引擎、筛选、排序、透视表、条件格式 |
| Doc | Word | 富文本、段落、表格嵌套、编辑模式 |
| Slides | PowerPoint | 幻灯片母版、动画、放映模式 |
| Bases | Access/数据库 | 表单视图、字段类型、关系引用 |
| Board | Miro 类画板 | 自由画布、贴纸、连线、协作 |
每个引擎都是独立插件,可以组合也可以单独使用。这种「原子化 → 套件化」的思路,对前端开发者来说特别友好——和你组装 npm 包一样,能拼出各种形态的办公应用。
2.3 Canvas 渲染:10 万行不卡顿
传统前端表格库大多用 DOM 渲染,几千行就开始卡。Univer 用 Canvas 渲染,10 万行级别仍然流畅。这意味着你可以把全公司一年的销售明细塞进一个表格而不卡顿。
对于企业内部报表工具来说,这是刚需。一个销售明细查询页面,如果超过 5 秒渲染不出来,业务部门就会吐槽。
2.4 专用公式引擎:不依赖第三方
不依赖第三方公式库(比如 formulas.js),Univer 有一套自己实现的公式引擎,目标是 Excel 级别兼容性。SUM、VLOOKUP、INDEX/MATCH、IF 嵌套都能跑——这对把 Excel 公式直接迁移到 Web 端很重要。
自研公式引擎的另一个好处:你可以按需扩展公式。比如某电商公司有自己的「佣金计算公式」,可以在 Univer 里注册成内置公式,让运营直接调用,不需要每次让 IT 写脚本。
三、为什么 AI Agent 终于能改 Excel 了
3.1 传统 Agent 操作 Office 的痛点
如果你试过让 AI Agent 自动填 Excel,大概经历过这些:
- 用 SheetJS 读取 .xlsx,能读但公式会丢;
- 想保留公式得手动解析 xl/worksheets/sheet*.xml,复杂得劝退;
- 想在 Node.js 端模拟整个 Excel 行为?没现成方案;
- 想让 Agent 把生成的表格截图?又得引入 puppeteer + 一个无头 Excel 服务。
每个环节都是坑,最后 Agent 只能输出 CSV 让人手动复制。
3.2 Headless 模式:Node.js 端跑 Office 逻辑
Univer 的杀手锏是 Headless for AI Infrastructure——整个 workbook/document 逻辑可以在 Node.js 端运行,不依赖浏览器。
这意味着 AI Agent 可以:
- 在服务端读取 xlsx,保留公式、样式、条件格式;
- 修改单元格、重新计算公式,导出新的 xlsx;
- 把整个流程脚本化,cron 跑批,零人工。
不需要 puppeteer,不需要无头 Excel 服务,Agent 直接调 SDK 就行。
3.3 Univer CLI:命令行里的 Office 工作区
为了配合 Headless 模式,Univer 还提供了 CLI 工具 univer-cli,相当于给 Agent 装了一个本地命令行 Office 工作区。Agent 可以:
- 创建新工作簿;
- 编辑现有工作表;
- 检查公式正确性;
- 一键导出 PDF/xlsx。
这是给 AI Agent 量身定做的工具链,比让 Agent 自己写 puppeteer 脚本稳定得多。
3.4 Univer Workspace:人和 Agent 协作审核
Univer 还推出了 Workspace——一个开源自托管工作区,最大特色是人和 AI Agent 可以在同一个文件上协作 + 审核。
典型场景:
- Agent 生成了一份销售预测表;
- 销售经理登录 Workspace 看到这份表,修改几个数字、加注释;
- Agent 再读回来,根据修改重新生成可视化版本。
这个「人 + Agent 共编同一份文档」的模式,对企业内部知识库的迭代特别有用。
四、跨产品线生态:不止一个 SDK
Univer 不是一个孤立的 SDK,而是围绕它已经形成了一整套产品矩阵。
4.1 univer-workspace:自托管工作区
官方提供的完整工作区服务端,包含文档管理、权限控制、协作编辑能力。可以理解为「自托管版的 Notion + Sheets」。团队可以部署在自己的服务器上,数据完全自主可控。
4.2 openclaw-univer-office:第三方集成
社区已经基于 Univer 做出了集成插件,把 Office 编辑能力嵌入到 OpenClaw 这类 AI Agent 平台里。这意味着你可以在 OpenClaw 的 Agent 调度框架里直接调用 Univer 的能力。
4.3 dsb-univer-office:DeepSeek Harness 集成
针对 DeepSeek 模型的 Harness 框架做的集成,让基于 DeepSeek 的 Agent 能原生调用 Office 能力。适合那些用 DeepSeek 模型作为 Agent 大脑的团队。
4.4 workbuddy-univer-office:MCP 预览集成
基于 MCP(Model Context Protocol)协议的预览和草稿审核集成。Agent 生成的文件可以直接通过 MCP 协议传给 workbuddy,渲染预览,用户审核后反馈给 Agent 修改。
五、和同类项目对比,Univer 强在哪
5.1 vs SheetJS(xlsx)
SheetJS 是读写 .xlsx 的事实标准,但它只懂「文件 IO」,不懂「渲染」「公式保留」「协作」。如果你只读不写、只取数据不改格式,SheetJS 够用;但要让用户在线编辑、要保留公式、要让 Agent 自动改,SheetJS 就力不从心了。
5.2 vs docx.js
docx.js 是生成 .docx 的主流库,但只懂「文档」一个维度。要做全栈办公(表格 + 文档 + 演示),得配合 SheetJS 一起用,API 风格还不统一。Univer 把五大引擎的 API 风格统一了,学一个会五个。
5.3 vs Apache POI
Apache POI 是 Java 生态的 Office 操作库,功能强大但 Java 生态对 AI Agent 集成不友好。要让 Python/Node.js 的 Agent 调 POI,得走 HTTP 包装或 JNI,性能和稳定性都打折。Univer 原生 TypeScript,AI Agent 集成成本低。
5.4 vs OnlyOffice
OnlyOffice 想做完整的 Office 在线编辑界面,是「Office 替代品」思路。Univer 想做 SDK,让任何应用获得 Office 能力,是「赋能」思路。两者的目标用户完全不同——OnlyOffice 适合需要直接给用户提供 Office UI 的场景,Univer 适合需要把 Office 能力嵌入自己应用的场景。
| 项目 | 语言 | 定位 | 与 Univer 对比 |
|---|---|---|---|
| SheetJS | JS | 读写 .xlsx | 只懂文件 IO,不懂渲染 |
| docx.js | JS | 生成 .docx | 只懂文档,要配合 SheetJS |
| Apache POI | Java | Office 读写 | Java 生态,Agent 集成成本高 |
| OnlyOffice | C++ | 完整 Office 替代 | 重,需要服务端,部署复杂 |
| Univer | TypeScript | SDK + 引擎 | 一个包覆盖五个引擎,原生 Agent 友好 |
关键差异:Univer 是 SDK,不是 Office 替代品。如果你的需求是「给已有应用加上 Office 编辑能力」,Univer 是当前最完整的开源选项。
六、电商场景里能怎么用
6.1 自动生成对账单
每月对账场景:
- 财务系统导出原始数据 CSV;
- Agent 调 Univer Headless,生成格式化 xlsx(按客户分组、加汇总行、加图表);
- 通过邮件附件或 OSS 链接分发。
相比手工做表格,每个财务每月省 4-6 小时。
6.2 商品资料批量编辑
电商运营常做的事:批量改商品标题、补运费模板、调库存阈值。
- 用 Univer Doc 引擎批量生成商品描述 docx;
- 用 Spreadsheet 引擎维护商品主数据表;
- 用 Slides 引擎每周自动出周会用的销售趋势 pptx。
三个引擎同源 API,运营脚本可以一套写完。
6.3 客服知识库自维护
让 Agent 把每天的客服对话整理成 Q&A 表格:
- 对话日志 → Agent 分析 → Univer Doc 生成知识库条目 docx;
- 同时写一份 Bases 视图给运营筛选;
- 一键导出 PDF 给新员工培训用。
6.4 直播数据周报
直播运营每周需要出周报(销量、流量、转化率、爆款 SKU)。用 Univer Slides 引擎:
- Agent 每周定时拉取直播数据;
- 按模板生成 PPT(首屏封面 + 数据页 + 爆款分析页 + 改进建议页);
- 自动分发给运营总监和主播。
整个流程无需人工干预,从「拉数据」到「出报告」一气呵成。
七、十分钟上手指南
7.1 安装
npm install @univerjs/presets @univerjs/preset-sheets-core
7.2 最小浏览器示例
import { Univer } from '@univerjs/presets'
import '@univerjs/preset-sheets-core/index.css'
const univer = new Univer({
container: document.getElementById('app')
})
const workbook = univer.createWorkbook({
name: 'my-first-sheet',
sheets: {
sheet1: {
cellData: {
A1: { v: 'Hello' },
B1: { v: 'Univer' }
}
}
}
})
7.3 最小 Node.js Headless 示例
import { FUniver } from '@univerjs/core/facade'
const univer = new FUniver()
const workbook = univer.createWorkbook({ name: 'agent-sheet' })
const worksheet = workbook.getSheetByIndex(0)
worksheet.getRange('A1').setValue('Generated by Agent')
workbook.save().then(blob => {
// blob 是 xlsx 二进制
})
7.4 文档和社区
- 官方文档:univer.ai(6 种语言,含中文)
- GitHub 仓库:github.com/dream-num/univer
- Discord 社区:discord.gg/univer
八、什么时候你用不上它
不是所有场景都适合 Univer,需要避开以下几个误区。
8.1 你只想读 .xlsx 不需要公式保留
如果你只是后端脚本读取表格数据,不需要保留公式、不需要前端展示、不需要用户编辑——SheetJS 更快、更轻,包体积只有 Univer 的 1/20。不要为了「AI Agent 友好」这种未来特性,引入一个 2MB 的 SDK。
8.2 你需要一个完整的 Office 在线编辑界面
Univer 是 SDK,不是「Office 替代品」。如果你要给最终用户提供一个完整的 Word/Excel 界面,让他们像用 Office 一样在线编辑——OnlyOffice、Collabora、Microsoft 365 嵌入更成熟。Univer 的 UI 偏开发者向,普通用户用起来有学习成本。
8.3 你的栈是 Python
Univer 主语言是 TypeScript,Python 集成需要走 CLI 或 HTTP 包装,性能和稳定性都打折。如果你团队栈是 Python 为主,可以考虑先用 Univer CLI 把核心功能封装成命令行工具,再让 Python Agent 通过 subprocess 调用。
8.4 包体积敏感的客户端场景
如果你的应用对包体积敏感(移动端 PWA、首屏 100KB 内)——Univer 完整包约 2MB,需要 tree-shaking 优化。即使按需引入,最小可用包也在 200KB 左右。比 SheetJS 大一个数量级。
九、你应该现在就用它的三个理由
9.1 AI Agent 落地办公自动化已是刚需
2025-2026 年,几乎每家公司的内部 AI Agent 项目都会涉及「让 Agent 读写 Office 文件」这个需求。Univer 是当前最完整的开源解,比自己造轮子省 6-12 个月。
9.2 Apache-2.0 协议,商用友好
协议 Apache-2.0,可以商用、可以二次分发、可以闭源修改。对于想做商业产品的团队来说,这是必选项——MIT/BSD 也行,但 Apache-2.0 的专利授权条款更明确。
9.3 周边生态在快速完善
univer-workspace、univer-cli、openclaw-univer-office、dsb-univer-office、workbuddy-univer-office——围绕 Univer 的产品矩阵在快速完善。今天用 Univer 不只是用了一个 SDK,而是接入了一个正在成长的办公 AI 生态。