univer
dream-num/univer加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。

想象一个场景:你让 AI Agent 帮你处理一周的运营报表——它需要读取 Excel 数据、生成 Word 格式的分析报告、最后把关键图表插入 PPT 交给领导。传统方案下,Agent 面对的是三个完全割裂的工具接口:处理 Excel 需要 openpyxl、处理 Word 需要 python-docx、做 PPT 又得找 python-pptx,三套 API、三种数据格式、三个调试地狱。更糟糕的是,Agent 如果想把 Excel 里的数据变化自动同步到文档里,几乎没有现成方案。
Univer 正是为解决这个问题而生。它不是一个在线协作文档网站,而是一套完整的 Office 运行时 SDK——让开发者把电子表格、Word 文档、PPT 幻灯片的能力,嵌入到自己的产品中。更关键的是,它为 AI Agent 设计了专门的 API 层:Agent 不再需要理解 xlsx 内部结构,只需要调用统一 Facade API,指定"读哪张表"、"改哪个单元格"、"生成什么格式",Univer 在底层完成所有格式兼容和渲染工作。
办公文档处理是 AI 应用中最具商业价值的场景之一。麦肯锡的研究显示,知识工作者每周花费约 20% 的时间在电子表格和文档操作上——数据汇总、报告生成、格式调整……这些重复性劳动理论上最容易被 AI 自动化。然而现实是,Office 文件格式极其复杂:以 Excel 为例,一个看似简单的 .xlsx 文件内部是 ZIP 压缩包,内含多层 XML 结构(工作表、样式、公式、命名区域、宏定义),不同版本 Excel 的兼容性处理就能让工程师耗上数周。Microsoft 官方至今没有开放稳定的程序化操作接口,第三方库只能做文件级别的读写,无法真正模拟"人在 Excel 中操作"的行为。Agent 因此无法像人一样"看到"电子表格的渲染效果,也无法完成依赖交互状态的复杂任务(如条件格式刷新、数据透视表重算)。
这个领域长期存在两个极端:要么是功能残缺的单文件库(如 xlwings 依赖 Windows + Excel),要么是庞大的闭源 SaaS(如 Google Workspace API、Microsoft Graph)。开源社区一直没有出现一个能在服务端、无依赖地运行完整 Office 逻辑的解决方案——直到 Univer。
Univer 定位为 "Office SDK for AI Agents",其核心设计哲学是同构(isomorphic):同一套代码库同时运行于浏览器端(Web UI)和 Node.js 端(服务端/CLI),无需 Excel 或 LibreOffice 的运行时依赖。
从架构上看,Univer 采用了经典的 monorepo + pnpm workspace 组织方式,packages 目录下包含 60+ 个子包,按职责分为几层:
| 层次 | 代表包 | 职责 |
|---|---|---|
| 核心引擎 | @univerjs/core、engine-render、engine-formula | 数据模型、Canvas 渲染、公式求值引擎 |
| 业务插件 | sheets、docs、slides、drawing | 表格/文档/幻灯片/画板的具体实现 |
| UI 组件 | sheets-ui、docs-ui、ui | 交互界面(React 生态) |
| 基础设施 | network、rpc、rpc-node | 网络通信、RPC 调用 |
| 预设包 | presets/packages | 常用功能组合(preset 模式) |
最值得关注的是 engine-formula 引擎:Univer 内置了 500+ 公式的完整实现,覆盖 SUM、VLOOKUP 到 INDEX/MATCH、PIVOT TABLE 等复杂操作,且能在 Node.js 中执行——这意味着 Agent 可以在服务端完成数据计算,无需浏览器环境。相比之下,ExcelJS、xlsx 等传统库只能做文件 IO,根本不支持公式求值;python-openpyxl 更是只读结构,公式结果需要依赖 Excel 程序本身。
Canvas 渲染是另一个亮点。Univer 不使用 HTML table 或 SVG 表格,而是基于自研的 Canvas 渲染引擎处理电子表格和文档的显示。这套渲染层同时支持深色/浅色模式、字体子像素渲染和大表格滚动优化,使得在大数据量场景下(如 10 万行数据)仍能保持 60fps 的滚动帧率。对于 AI 场景,这意味着 Agent 可以生成"截图验证"——将计算结果渲染成图片后通过视觉模型验证输出正确性。
Univer 提供了三层 API 抽象,满足从快速集成到深度定制的不同需求:
Facade API(最高层):面向 AI Agent 的自然语言操控接口。Agent 无需理解底层数据模型,只需调用统一的 Facade API 指定操作目标,Univer 自动处理格式兼容和数据同步。
Command API(中层):基于命令模式的操作接口。每次操作(如"设置单元格值"、"插入行")封装为独立 Command,可撤销、重做、批量执行。适合需要精细控制操作历史的场景。
Service API(底层):插件化的服务注册机制。每个功能模块(公式引擎、权限管理、数据验证)以独立 Service 注入,开发者可以按需替换或扩展。
对于 AI Agent 的特殊需求,Univer 特别设计了以下能力:
对于爱好者:Univer 官方提供了 Web 在线体验(univer.ai/demo/spreadsheets),无需安装任何东西即可体验表格、文档、幻灯片的基本操作。对于想了解 AI 办公能力的用户,官方展示页面收录了多个基于 Univer 构建的真实案例,包括与 DeepSeek、Claude 的集成演示。
对于开发者:快速集成推荐使用 preset 模式(预设包组合),一行命令即可拉起包含表格+文档+幻灯片基础功能的运行环境。深度定制则采用 plugin 模式,手动按需引入子包,可将最终 bundle 体积控制在 200KB 以内(gzip)。
快速上手命令(需 Node.js 18+):
# 安装 preset 快速开始
npx create-univer my-app
cd my-app && pnpm dev
Facade API 调用示例(TypeScript):
import { UniverSheet } from '@univerjs/facade';
const univer = new UniverSheet();
await univer.createWorkbook({ id: 'report' });
// AI Agent 操作表格:设置公式,导出 PDF
univer.getWorkbook('report')
.getSheet('Sheet1')
.getRange('A1')
.setValue('=SUM(B2:B100)');
univer.getWorkbook('report')
.getSheet('Sheet1')
.exportToPDF();
值得注意的门槛:Univer 依赖 pnpm workspace,GitHub 根目录没有 Dockerfile 或 docker-compose,不支持容器化一键部署。pnpm install 在中国大陆网络环境下可能需要配置镜像。对于 TypeScript 开发经验是必要条件——Univer 全部由 TypeScript 编写,无 Python/Go/Rust 绑定。
Univer 并非没有短板。
PDF 支持仍在开发中:虽然 roadmap 包含 PDF 导入/导出,但截至目前 PDF 功能标记为"coming soon"。对于需要处理 PDF 发票、合同等常见办公场景的用户,这一缺口意味着还需要额外的工具链配合使用。
无 Dockerfile,部署有门槛:项目采用 monorepo 架构管理 60+ 子包,本地构建需要 pnpm + Node.js 完整环境。官方没有提供 Docker 镜像,对于习惯 docker-compose 一键部署的团队来说,需要自己写 Dockerfile 封装环境——这无形中提高了入门门槛。
插件市场仍在早期:Univer 的插件生态尚不丰富,官方 preset 之外的第三方插件屈指可数。与 VSCode 插件生态(10 万+ 插件)相比,Univer 的扩展机制虽然设计合理,但缺乏足够的社区积累。
Pro 版本商业限制:协作编辑、实时同步、权限管理等高级功能属于 Univer Pro 商业模块,开源版本仅有基础的单文件处理能力。企业用户如果需要真正的多人协同编辑,需要评估 Pro 版本的商业授权。
Univer 的出现填补了一个重要的技术空白:服务端 Office 运行时。此前,只有 Microsoft 官方的 Office Interop(仅 Windows)和 LibreOffice Headless(启动慢、资源占用高)两个选项。Univer 以 TypeScript + Canvas 渲染的路线,提供了一个更轻量、更可控的服务端 Office 替代方案。
从数据看,GitHub 16,275 stars、SpreadsheetBench 榜单 68.86% 准确率(vs Excel Copilot Agent 16.5%)、44 个职业场景覆盖——这些指标说明 Univer 已在 AI + 办公交叉领域建立了一定的技术壁垒。Robert Scoble 等行业观察者将其称为 "Office 365 for the Agent Era",这并非营销话术:传统 Office 套件的核心价值在于"人操控文件",而 Univer 的核心价值在于"AI 操控文件"——这是一个本质不同的产品定位。
更值得关注的是其生态战略:Univer CLI 已支持通过 npx skills add dream-num/skills 将 Univer 能力注册为 AI Agent 的 skill,Claude、Copilot、Cursor、Gemini、Kimi、MiniMax 等主流 Agent 均可直接调用 Univer 的 Office 操控能力。这条路如果走通,Univer 将成为 AI Agent 时代的"Office 操作系统",价值远超一个开源库本身。