文档大纲

AI Agent终于会改 Excel 了:dream-num/univer 把五大Office引擎打包开源

一、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已经过了「玩具级」门槛,进入生产可用区间
Fork1,453Fork/Star ≈ 8.8%,高于成熟项目平均水平,说明实际有人在二次开发
Topicsboard、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 模块核心能力
SpreadsheetExcel公式引擎、筛选、排序、透视表、条件格式
DocWord富文本、段落、表格嵌套、编辑模式
SlidesPowerPoint幻灯片母版、动画、放映模式
BasesAccess/数据库表单视图、字段类型、关系引用
BoardMiro 类画板自由画布、贴纸、连线、协作

每个引擎都是独立插件,可以组合也可以单独使用。这种「原子化 → 套件化」的思路,对前端开发者来说特别友好——和你组装 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 对比
SheetJSJS读写 .xlsx只懂文件 IO,不懂渲染
docx.jsJS生成 .docx只懂文档,要配合 SheetJS
Apache POIJavaOffice 读写Java 生态,Agent 集成成本高
OnlyOfficeC++完整 Office 替代重,需要服务端,部署复杂
UniverTypeScriptSDK + 引擎一个包覆盖五个引擎,原生 Agent 友好

关键差异:Univer 是 SDK,不是 Office 替代品。如果你的需求是「给已有应用加上 Office 编辑能力」,Univer 是当前最完整的开源选项。

六、电商场景里能怎么用

6.1 自动生成对账单

每月对账场景:

  1. 财务系统导出原始数据 CSV;
  2. Agent 调 Univer Headless,生成格式化 xlsx(按客户分组、加汇总行、加图表);
  3. 通过邮件附件或 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 生态。

阅读量: 104