ARTICLE · 1108793
每周AI工具|AI 写 Office 一直是「盲写」:Univer 1.0 装上眼睛,但导出和图表在商业包里
AI工具 AI科研专家 — 用AI做科研的效率工具
文件级交付 · 模型回读 · 渲染自检 · 许可边界
点击文末「阅读原文」直接使用
关注「AI-For-Precision-Health」 — 每天一篇AI科研实操干货
食品 · 医药 · 器械 · AI工具 · 科研Skill — 让AI真正帮你做科研。
AI 帮你干活,最容易出事的一步不是它算错,是它把一个文件交到你手上——而它自己从来没「看」过这个文件长什么样。
我用 AI 处理过不少表格:把三次重复的 qPCR Ct 值拼成一张汇总表、按分组算均值和标准差、顺手画一张柱状图。过程每次都顺,结果每次都出事。有一次它把「给药组」的均值算进了「对照组」那一列,因为我把样品编号写成 1、2、3 而它按字母序排的;还有一次图表明明画对了,贴进 Word 里却跨页断成两半,表头留在了上一页。它写得没错,它只是看不见。
9 月 24 日,开源项目 Univer 发布 1.0:把表格、文档、幻灯片、白板、多维表、PDF 六个编辑器收进同一套 Office SDK,同时新增 Server SDK 与 AI SDK 两条线[1][2]。它真正的变化不在「支持多少种格式」,而在 AI SDK 那一页文档里——它把渲染接回了 agent 的回路:agent 可以给自己刚写完的文件截图、跑一遍版面检查,然后在隔离的草稿里改完,最后交给人做裁决[3][4]。
但它最值得写的地方和最大的坑,是同一件事。仓库根目录铺的是 Apache-2.0 全文,看起来像个「开源 Office 替代品」;可我顺着 npm 上的依赖爬了两层,发现开源 scope 下根本不存在@univerjs/sheets-chart 这个包,而官方的零代码入口 univer-cli——它自己声明 Apache-2.0——在 package.json 里直接依赖 4 个商业包[5][6][7]。
所以这篇要回答两个问题:它到底能不能让 AI 不再「盲写」文件?以及它划在开源那一侧的能力,够不够撑起一个课题组的日常交付?
21,002 GitHub star(2026-09-28 实测),仓库根许可 Apache-2.0[5] | 6 个 编辑器收进一个运行时:表格 · 文档 · 幻灯片 · 白板 · 多维表 · PDF[1] | 8 小时 v1.0.0 → v1.0.2 连发三个正式版(2026-09-24)[8] |

▲ 图1:「盲写」与「渲染回路」的区别 · 来源:依据 Univer 官方 AI SDK 文档与仓库 README 绘制
本文核心要点
▸ AI 生成 Office 文件的天然盲区:它能回读「值」,回读不了「看起来」
▸ Univer 1.0 真正新的是 AI SDK 的渲染回路:渲染截图 + 版面检查回喂给 agent
▸ Worktree 隔离草稿:agent 改、你裁决,改动默认不落到主干
▸ 零代码入口真实存在:装一个命令行加一个官方 skill,但要 Node ≥ 24
▸ 边界:导入导出、图表、透视表、协作、服务端计算都在 Univer Pro,开源 scope 下没有对应包
创作来源说明:本文所有事实来自 Univer 官方仓库的 README 与 Apache-2.0 许可全文、GitHub 发行记录、docs.univer.ai 的 AI SDK 与视觉自检文档、npm registry 上的包依赖清单,以及 3 篇可查文献(DOI 见文末)。⚠️ 我没有在本机完整跑通它的服务端协作链路,凡是未实机验证的步骤我都逐条标明了;命令行与包名都可以在仓库和 npm 上复查。
一、为什么本周值得打开它:AI 不是在「写」Office,是在「盲写」
本节结论:AI 生成 Office 文件真正的断点从来不是「写不出来」,而是「写完看不见」;模型能回读自己写进去的数值和结构,却读不到渲染后的样子。Univer 1.0 是少见的、把「渲染结果」正式回喂给 agent 的开源 Office SDK。
先把这件事说透。过去几年让 AI 产出 Office 文件,主流是三条路,每一条都有一个绕不过去的盲区。
路径一:让模型直接吐 xlsx 字节
用现成的表格库把数据写成文件。数字能算对,公式也能塞进去,但列宽、冻结首行、打印区域、跨页断行全凭默认值。我踩过最典型的一次,是它把我给的长表直接摊成宽表,「时间点」在图表里变成一串互不相干的系列名——因为在它的世界里,那只是单元格坐标,不是一个视觉对象。
路径二:让模型写 Markdown 或 HTML,再转成文档
样式可控,排版稳定,写报告确实够用。但只要需求一变成「单元格之间要联动、改一个数整张表跟着变」,转换器就把活公式拍成了死值。对科研场景来说这是硬伤:配比一改就得整表重算,谁都不想每次手工核一遍。
路径三:让 agent 直接操作桌面的 Office
这条路能「看见」——因为屏幕上真的画出了东西。代价是慢、脆、不可无头批处理,而且每一步都绑死在一台装了 Office 的 Windows 上。让它改二十张表,它会一张一张点过去。
三个路径的盲区其实是同一个:模型的输出是 token,不是画布。它知道自己写了 B7 里是 0.913,不知道这一列的宽度只有三个字,「样本量」四个字已经被截掉了。
这不是我在夸张。电子表格本身的「数据组织错误」是同行评议里被反复统计过的老问题:基因名被表格软件自动改成日期这一类事故,在被引用最广的那篇报告里被证明是普遍存在的[9];而怎么组织数据才能避开这一类坑,也早有一份被很多实验室打印贴在墙上的规范[12]。模型接手之后,问题换了形态但没消失——在真实电子表格操作任务上的基准测试显示,即便是前沿模型,在这类任务上的通过率也远谈不上可靠[13]。
9 月 24 日发布的 Univer 1.0 换了个思路。它不再是「一个编辑器」,而是一套可编程的 Office 运行时:六个编辑器共用插件系统、命令系统和各自的 Facade API,同一份文档模型既能在浏览器里渲染,也能在 Node.js 里无头运行[1][2]。它真正新加的两条线里,Server SDK 管协作与文件转换,AI SDK 管 agent——而 AI SDK 那一页文档里,有一句话我读了两遍:
官方原文:「Inspection can verify values, paragraphs, and page structure, but it cannot fully express text overflow, element overlap, graphic position, and final page layout. After structured content operations, add browser rendering so the agent can inspect the actual visual result.」[4]
翻译一下:结构化检查能验值、验段落、验页面结构,但表达不了文字溢出、元素重叠、图形位置和最终分页。所以结构改完之后,必须再叠加浏览器渲染,让 agent 去看真实的视觉结果。官方把这句话写在文档里,等于自己承认了「结构化检查不等于正确」——这在同类项目里不常见,我很认这一点。
热点证据卡(都可自行复查)
▸ 官方公告说这个版本从 2026 年 4 月开始做[2]。
▸ v1.0.0 于 2026-09-24 03:27:43Z 发布,v1.0.1 在 08:44:44Z、v1.0.2 在 11:32:24Z——8 小时 5 分钟之内连发三个正式版[8]。这个节奏本身就说明 1.0 之后的补丁压力不小。
▸ npm 上 @univerjs/presets@1.0.2 与 @univerjs/core@1.0.2 同步在 11:12Z 发布,许可字段为 Apache-2.0[6]。
▸ 1.0 新公布的三个编辑器里,白板、多维表、PDF 是此前没预告过的[2]。
科研人为什么该关注它?因为科研交付物的形态和一般办公不一样:数据必须是活的(改了配比要能重算),结果必须能溯源(这个数从哪个单元格来),版面必须有约束(期刊和伦理审查对表格格式有要求)。这三条恰好都是「看不见就做不对」的事。
二、它到底替你做哪类任务:把「一个文件」变成「一个可回读的模型」
本节结论:Univer 卖的不是编辑器界面,而是「同一份文档模型在浏览器、服务器和 agent 手里是同一份」这件事。它的价值在「同源」,不在「功能多」。
一句话定位:一个可编程、可无头运行的 Office 运行时,让 AI agent 能像操作数据结构一样操作 Excel、Word、PPT 和 PDF,并且在渲染后检查自己的产出。
它的能力被切成了三层,这三层的分工决定了你该怎么用它:
| Web SDK | ||
| Server SDK | ||
| AI SDK |
官方在 AI SDK 文档里反复强调一句话:它「是一组可组合的能力,不是一个固定的产品 CLI」——命令名、参数、目标、身份授权、输出格式、部署方式,全部由你的应用自己负责[3]。这句话很重要,它决定了这个东西的性质:这是给「要搭工具的人」的底座,不是给「要用工具的人」的成品。
适合 / 不适合(我的判断)
✅ 适合:要给课题组搭一套「数据录入 → 自动计算 → 出图 → 生成报告」的内部链路;要把几十上百份格式各异的历史 Excel 统一成一套模板;要在自己产品里嵌一个可编程的表格/文档编辑器。
⚠️ 要谨慎:只想「每周让 AI 帮我整理一张表」的个人用户——你要付出的是装 Node 环境、装命令行、装 skill 的固定成本,还要接受它的能力边界(见第六节)。
❌ 不适合:需要处理涉密/未脱敏临床数据的场景,除非你自己本地部署并全程断网;以及指望它「一键生成能直接投稿的图表」——期刊对图表的字号、线宽、配色有硬性要求,这一步没有任何工具能替你负责。
和旧做法的区别,我列成一张表更清楚:
| Univer AI SDK | 可截图 + 版面检查 |
三、10 分钟跑出第一份结果:装 CLI、装 skill、跑 doctor
本节结论:零代码路径真实存在——它官方做了一个 univer-cli 命令行和一个配套的 agent skill。门槛不在「会不会写代码」,而在 Node 版本和操作系统。
三阶段全景
阶段一(Step 1-4)装上:Node 环境、命令行、doctor 自检、官方 skill;阶段二(Step 5-8)用起来:导入、改公式、截图自检、草稿裁决;阶段三(Step 9-10)跑交付:一份可复核的月报与一套沉淀下来的流程。
先说清一件事:下面 10 步是我按官方 README、AI SDK 文档、CLI skill 定义和 npm 依赖清单逐条核对整理的,不是我的实机运行日志——我的机器上没跑它的服务端协作链路。每条命令都能在仓库里复查,涉及许可与操作系统的地方我都标了。
Step 1|先确认 Node 版本够不够
📥 输入:一台联网电脑,以及一个终端(Windows 用 PowerShell 或 Git Bash 都行);🤖 AI动作:让 agent 先跑 node -v,再对照官方声明的最低版本——univer-cli 的 engines 字段写的是 node >= 24.0.0[7];📤 输出:一行版本号,以及「够 / 不够」的结论;🔍 人审:自己再看一眼那行版本号,别接受「应该可以」这种回答;⚠️ 失败处理:低于 24 就先装 Node 24 LTS(很多长期没更新的机器默认还是 18 或 20),不要试图绕过版本要求——它依赖的 puppeteer-core 与原生绑定包对运行时有硬约束。
Step 2|全局装上 univer-cli
📥 输入:Node ≥ 24 的环境;🤖 AI动作:执行 npm install -g univer-cli,官方 skill 文档给的就是这一条[10];📤 输出:一个全局可调用的 univer 命令;🔍 人审:跑 univer --version,再用 npm view univer-cli@latest version 比对是不是最新版[10];⚠️ 失败处理:全局安装常因权限报错,别急着加 sudo——先确认 npm 的全局目录在你的用户目录下;如果公司网络挡了 registry,换镜像源重试。
Step 3|先跑 doctor,别急着开文件
📥 输入:刚装好的命令行;🤖 AI动作:执行 univer doctor,它会检查环境是否就绪;需要机器可读的结果时加 --json[10];📤 输出:一份环境体检报告(浏览器内核、共享守护进程、依赖完整性);🔍 人审:重点看有没有缺浏览器内核——它要靠浏览器渲染来截图,这一项缺了,后面第七步的「视觉自检」整个失效;⚠️ 失败处理:官方特别提醒,升级时如果提示「共享守护进程需停止」,要先确认停掉它是安全的,再带 --force 重跑[10]。
Step 4|给 agent 装上官方 skill
📥 输入:一个支持 skill 的编码型 agent(官方徽章标注支持 Claude Code、Codex、Cursor);🤖 AI动作:整包安装用 npx skills add dream-num/skills,只装 CLI 那个用 npx skills add dream-num/skills --skill univer-cli[11];📤 输出:一组版本匹配的操作型 skill(7 个,含集成、Pro 集成、Node 后端、插件开发、主题定制、CLI、Workspace CLI);🔍 人审:注意 Pro 集成是一个单独的 skill(univer-pro-integrate),官方描述里写明它面向的是「licensed Sheets, Docs, Slides, Bases, Boards, PDFs, collaboration, exchange, and Pro features」[11]——这句话是整篇最关键的一条边界;⚠️ 失败处理:官方 skills 仓库的环境徽章只标了 Linux | macOS[11],Windows 上请先在 WSL 里试,别直接假定原生可用。
四、核心功能照着用:四个动作覆盖日常交付
本节结论:真正每天用得上的是四个动作——导入、改、看、裁决。前两个是「写」,后两个才是 Univer 相对同类真正多出来的部分。
Step 5|导入你已有的 Excel / CSV / Word / PPT
📥 输入:课题组的历史文件,格式按官方能力表:表格支持 .xls / .xlsx / .xlsm / .csv / .tsv,文档支持 .doc / .docx,幻灯片支持 .ppt / .pptx[10];🤖 AI动作:让 agent 把文件转成 .univer 容器(一份文件里可以同时装 Sheet、Doc、Slide、Base、Board 五个 Unit,互相引用)[10];📤 输出:一个可被模型完整回读的 .univer 文件;🔍 人审:抽查三处最容易掉东西的地方——公式是否还是公式、图表的系列是否都还在、文档分页是否被改了;⚠️ 失败处理:Agent 自己的 SKILL.md 把话说得很硬:「命令成功不等于结果正确」,要求回读目标模型、验证任务相关的断言、外观重要时还必须检查渲染输出[10]。这一条请照做,别只看它说「导入成功」;另外 白板不支持文件导入导出[10]。
Step 6|让它改公式、加校验、建交叉表
📥 输入:一份已经导进来的 .univer,以及你要的结果描述;🤖 AI动作:用一句话下单,例如「把三组重复的测量值按样品号汇总,算出均值和标准差,列一个条件格式把超出 ±2SD 的行标红,再加一张按分组汇总的表」——官方列的开源侧能力包括单元格与公式、数字格式、筛选排序、数据验证、条件格式、批注、表格、超链接、查找替换[1];📤 输出:活公式、条件格式和数据验证规则都写在模型里,而不是拍平成值;🔍 人审:必须抽验至少一个统计值。我自己的习惯是挑「标准差」这一列——它是这类任务里最容易因为算总体还是样本而差一点的地方;⚠️ 失败处理:如果它说「图我加上了」,而你让它建的是一张图表,基本可以判定它跑到了商业包里(见第六节)。
Step 7|给 agent 装上眼睛:截图 + 版面检查
📥 输入:一个明确的内容状态——官方要求截图和版面检查接收的是「物化后的 UnitData」,不能是远程目标或未应用的变更集;协作文件要先同步并导出当前完整状态[4];🤖 AI动作:走官方的两件套——Screenshot 输出 PNG 给 agent 做视觉核对,Layout Lint 输出结构化的版面发现给 agent 自己改[4];📤 输出:截图 PNG + 一份版面问题清单,然后 agent 据此再改一轮;🔍 人审:这一步的产物就是给你看的。请打开截图,重点看四件事:文字有没有溢出被截、元素有没有重叠、图形位置有没有错位、分页有没有把表头切掉;⚠️ 失败处理:官方把这句话写在文档最显眼的位置——结构化检查表达不了溢出、重叠、图形位置和最终分页,所以渲染截图不是可选项[4]。如果环境里浏览器内核没装好(Step 3 那一项),这一步会整个失效,回头补环境。
Step 8|Worktree:改在草稿里,你只做最后裁决
📥 输入:目标 .univer 文件;🤖 AI动作:agent 打开一个隔离的 Worktree(官方定义:trunk 是已审阅的主线,worktree 是给 agent 改动的隔离范围,不存在隐式的当前 worktree),在草稿里改、回读、截图、跑版面检查,改完把 Worktree 标记为 ready,返回一个本地 Viewer 链接[10];📤 输出:一个只读的 Viewer 页面,支持 View 与 Compare 两种模式——Compare 默认拿当前草稿和你钉住的 trunk 状态对比[10];🔍 人审:你在 Viewer 里看图、看 diff,然后显式选择合并、重开还是丢弃[10];⚠️ 失败处理:这是它设计上最让我放心的一处——因为「丢弃」是一等公民,agent 改歪了不会污染你手上的正式文件。真正需要警惕的是反面:如果团队里有人图省事直接让它改主线,这套保护等于没装。
五、完整实战:把一份「三批次配比实验」跑成可复核的月报
本节结论:一个科研小项目的完整链路里,真正的卡点不在「写公式」,而在最后那一步——导出。因为导出恰好划在商业包那一侧。
Step 9|从三份原始 CSV 到一份可以交出去的月报
📥 输入:三批次实验的三个原始 CSV(每份都是长表:批次号、样品号、组别、时间点、测量值、仪器编号);一份你要交给导师/课题组的月报要求(含封面、摘要、风险表、下周计划、页眉页脚);🤖 AI动作:让 agent 走一条完整链路——① 课题调研与问题定义:先用一份文字说明告诉它「这三批是同一条工艺的三次重复,样品号规则是什么、仪器换过一次」;② 数据治理:把三份长表合并、统一组别命名、标出仪器变更批次;③ 分析基线:按样品号算均值与标准差,算组间差异,加条件格式;④ 图表:按分组做柱状图并在图上标样本量;⑤ 报告写作:把结果表写进一份文档,加页眉页脚和分页;⑥ 自动化沉淀:把这套动作写成能复用的命令序列;⑦ 人工复核:截图 + 版面检查后返回 Viewer;⑧ 归档复现:保留参数与执行日志;📤 输出:一个 .univer 文件(表格 + 文档 + 幻灯片在同一容器里互相引用)、一张 Viewer 链接、一份可合并的草稿;🔍 人审:先核数字(抽一个样品的均值和标准差自己按计算器算一遍),再看版面(截图里查溢出/重叠/分页),最后看差异(Compare 模式逐处过一遍);⚠️ 失败处理:关键的一步在这里——如果你要的是「导出成 .docx 发给导师」,就走了商业边界。官方发行的说明里,Server SDK 的 Exchange 导入 XLS/XLSX、DOC/DOCX、PPT/PPTX,导出 XLSX/DOCX/PPTX,表格另支持 CSV/TSV[2];而在 npm 上,开源 scope 里的成交包是 @univerjs-pro/exchange-client、@univerjs-pro/sheets-exchange-client 这类 Pro 包[7]。所以这一步要做两件事:先确认你的许可范围,再决定是「接受 Viewer 里审阅 + 打印为 PDF」,还是走商业授权。
Step 10|把这套流程沉淀成课题组的 SOP
📥 输入:Step 9 跑通的那一组命令与提示词;🤖 AI动作:让 agent 把「样品号规则、组别命名规范、异常值判定阈值、图表配色、报告章节模板」写成一份固定说明,并在每次任务开始时先读它;官方 skill 文档给的做法是用 univer skills get core 先加载与当前版本匹配的核心 skill,再加载对应 Unit 的 skill[10];📤 输出:一份可复用流程说明 + 一套固定命令;🔍 人审:让课题组的第二个人按这份 SOP 独立跑一遍,如果结果不一致,说明 SOP 里还有隐含假设没写下来;⚠️ 失败处理:每次升级 CLI 之后都必须重新加载核心 skill——官方明确要求升级完成后 reload core 和目标 Unit 的 skill,否则命令与 Facade API 可能对不上[10]。另外注意它的浏览器基线是 Chrome/Edge 88、Firefox 90、Safari 14.1、Electron 12[2],老机器上的旧内核浏览器跑不起来。
六、结果能不能直接用:验收清单与四条边界
本节结论:它的结构化检查能保证「数字对」,保证不了「版面对」;它的开源许可能保证「能改」,保证不了「能商用」。两条边界都必须你自己扛。
边界一(最重要):Apache-2.0 覆盖的是引擎,不是整车。官方 README 里有一节专门叫「Open Source and Pro」,把两边的范围列得很清楚:开源侧是核心 SDK、插件系统、渲染引擎、公式引擎、Facade API、主题、多语言和框架适配器,以及表格的核心编辑、公式、数字格式、筛选排序、数据验证、条件格式、批注、表格、超链接、批注、绘图、查找替换;商业侧则是协作、编辑历史、导入导出、打印、图表、透视表、迷你图、大纲、形状、单元格内图形、数据连接器,以及服务端的协作服务器、SSR 服务和计算委派[1]。
光看这张表还不够,我把它落到 npm 上验证了一遍,三条结果互相印证:
▸ 开源 scope 下没有图表包。搜 @univerjs/sheets-chart 返回 not found;存在的是 @univerjs-pro/sheets-chart、@univerjs-pro/chart-ui、@univerjs-pro/engine-chart[7]。
▸ 名为「开源 scope」的 preset 自己拉了一串商业包。@univerjs/preset-sheets-advanced@1.0.2 的 license 字段是空的,依赖清单里有 25 个 @univerjs-pro/* 包,包括图表、透视、打印、形状、迷你图、协作、嵌入和成交客户端[7]。
▸ 有许可校验的痕迹。这些商业包里有一个 @univerjs-pro/license@1.0.2,描述是「License management plugin and services for Univer Pro」[7]。
▸ 连零代码入口也踩在边界上。官方命令行 univer-cli 自己声明 Apache-2.0,但它的 dependencies 里直接写着 @univerjs-pro/cli-assets、@univerjs-pro/engine-formula-rust、@univerjs-pro/exchange-node、@univerjs-pro/doc-typst-native-binding 四个商业包[7]。官方生态页也补了一句:每个子项目各自声明自己的 SDK 许可要求[1]。

▲ 图2:Univer 的「开源面」与「商业面」 · 来源:官方仓库 README 的 Open Source and Pro 表与 npm 包依赖清单(查阅日期 2026-09-28)
把这几条拼起来,我的结论是:「开源 Office 替代品」这个说法不准确。你拿到的是引擎和驾驶室,不是整车。这不代表它不厚道——恰恰相反,官方把边界专门写了一节、把 Pro 能力单列成表,还专门给了一个 univer-pro-integrate skill 来说明「licensed」的部分,这属于交代得很清楚的。但「Apache-2.0」这四个字确实容易被读成「随便用」,尤其当包名就长成 @univerjs/… 的样子。
边界二:结构化检查不等于视觉正确。官方文档已经把这条写在明面上[4],我照抄不删。对科研来说它的含义很具体:数字对和版面对是两件事,前者工具能帮你,后者只能你看。我给自己的规矩是——任何要交出去的文件,最后一关一定是我自己打开看一眼截图。
边界三:平台与版本。命令行要求 Node ≥ 24;浏览器基线是 Chrome/Edge 88、Firefox 90、Safari 14.1、Electron 12;官方 skills 仓库的环境徽章只标 Linux 与 macOS;白板暂不支持文件导入导出;依赖的多个原生绑定包按平台分别发布[2][10][11]。
边界四:升级是破坏性的。1.0 是一次大版本,官方列了明确的破坏性变更:createUniverSheet() 改成 createWorkbook()、getUniverSheet() 改成 getWorkbook()、旧事件钩子统一到 addEvent();Presets 不再提供 UMD 构建,用 script 标签加载的方式直接失效;Uniscript 被移除;相互依赖的包必须严格对齐版本;0.25 系列自 1.0 起只提供一年安全更新[2]。如果你正基于 0.25 做东西,这不是一次「升级」,是一次迁移。
七、到底值不值得长期用:适合谁、不适合谁、替代方案与最佳工作流
本节结论:如果你要「在自己产品里嵌一套可编程 Office 能力」,它是目前最完整的开源底座之一;如果你只是想「每周让 AI 帮我整理一张表」,它的成本高于收益。
决策卡
✅ 长期用:课题组/实验室有工程能力,需要一条可复用、可审计的「数据 → 表 → 图 → 报告」流水线;或者你在做科研相关的产品,要给用户嵌 Office 能力。
⚠️ 试点用:只有你一个人,每周处理几张表。可以先只用命令行 + skill,把它当成「带眼睛的表格助手」,许可边界内的事做,边界外的事不碰。
❌ 先别用:需要处理未脱敏数据、需要交付严格格式的期刊图表、或者团队里没人愿意维护 Node 环境和版本对齐。
我建议的最佳工作流(也是在许可边界内最省事的一条):数据整理和建模全部在开源侧做完 → 用渲染截图 + 版面检查完成自检 → 在 Viewer 里完成人工裁决 → 最终交付用打印/导出 PDF,而不是依赖 Pro 的 Office 格式导出。这样一条链路今天就能在 Apache-2.0 范围内跑起来,等你的需求真的撞上图表和穿梭表的墙,再去谈商业授权——那时候你已经知道自己值不值得为它花钱了。
核心结论
▸ 结论1:AI 生成 Office 文件真正的断点是「看不见」,不是「写不出」。模型的输出是 token 而不是画布,它能回读值和结构,读不到列宽、溢出、重叠和分页[3][4]。
▸ 结论2:Univer 1.0 真正新的地方,是 AI SDK 把渲染接回了 agent 回路——渲染截图 + 版面检查两件套让 agent 能检查自己写出来的东西;官方自己写明结构化检查表达不了视觉结果,所以这一步必须叠加[3][4]。
▸ 结论3:Worktree 是它工程上最讲究的一处设计——trunk 是已审阅主线,改动先落隔离草稿,标记 ready 后返回 Viewer 供人裁决,合并/重开/丢弃三选一由人显式决定;命令成功也不等于结果正确,官方要求回读模型并检查渲染[10]。
▸ 结论4:「开源 Office 替代品」这个说法不准确。仓库根是 Apache-2.0,但导入导出、图表、透视表、协作、服务端计算都划在 Univer Pro 商业侧;开源 scope 下根本没有 @univerjs/sheets-chart,而名为开源 scope 的 @univerjs/preset-sheets-advanced 拉进了 25 个 Pro 包,连零代码入口 univer-cli 都直接依赖 4 个 Pro 包[1][7]。
▸ 行动:这周先做三件事——① 在 WSL 或 Linux/macOS 上装好 Node 24 与 CLI,跑通 univer doctor;② 拿一份不含敏感信息的历史 CSV,走一遍「导入 → 改公式 → 截图自检 → Viewer 裁决」,重点感受 Compare 模式和「丢弃」这两个动作;③ 把你要交付的最终格式列出来,对着本文第六节的表逐条确认哪些落在开源侧。确认完再决定要不要给课题组上。
「过去我们争论 AI 能不能把表写对,现在该换个问法了:它写完,谁来替它看一眼?如果答案还是你,那它省下的只是打字,不是责任。」
综合评分(捞仔主观打分,10分制)
问题定位精准度:9.5(「让 agent 看得见自己的产出」是长期被绕开的真问题,它正面解了)| 架构完整度:9.0(六编辑器 + 三层 SDK + 隔离草稿 + 渲染自检,工程完成度很高)| 上手门槛:6.5(要 Node ≥ 24、命令行、原生绑定,官方渠道标注 Linux/macOS;零代码入口虽然存在,但依赖商业包)| 许可清晰度:8.0(边界写得很明白,没藏,但「Apache-2.0 + 包名像开源 + 依赖商业包」的组合容易误读)| 科研场景匹配度:7.5(数据整理与自检环节非常对口,图表与导出恰好卡在商业边界上)
综合评分:8.1 / 10 —— 值得投入时间学的底座,但不是能直接上手的成品;用它可以,先读许可。
参考文献
[1] Univer 官方仓库 README(含「The Office Harness for AI Agents」定位、六编辑器说明、「Open Source and Pro」能力边界表、生态与子项目清单)。GitHub: dream-num/univer。https://github.com/dream-num/univer (访问日期 2026-09-28)
[2] Univer Team. Univer 1.0: Six Editors, One Programmable Office SDK. 官方公告,2026-09-24. https://docs.univer.ai/blog/univer-1-0 ;配套发行说明见 GitHub Release v1.0.0(2026-09-24T03:27:43Z,含 Server SDK 导入导出格式、破坏性变更、浏览器基线、0.25 维护策略)
[3] Univer 官方文档. AI SDK(说明 AI SDK 是为 agent 构建 Office CLI 的 TypeScript SDK,是一组可组合能力而非固定产品 CLI;业务应用负责命令名、参数、目标、身份授权、输出与部署). https://docs.univer.ai/ai (访问日期 2026-09-28)
[4] Univer 官方文档. Visual inspection(Render Runtime / Screenshot / Layout Lint;含「Inspection can verify values, paragraphs, and page structure, but it cannot fully express text overflow, element overlap, graphic position, and final page layout」原文). https://docs.univer.ai/ai/visual-inspection (访问日期 2026-09-28)
[5] Univer 仓库根许可文件 LICENSE(Apache License, Version 2.0, January 2004). https://github.com/dream-num/univer/blob/main/LICENSE (访问日期 2026-09-28)
[6] npm registry. 包 @univerjs/core@1.0.2 与 @univerjs/presets@1.0.2,许可字段均为 Apache-2.0,发布时间 2026-09-24T11:12Z. https://registry.npmjs.org/@univerjs/core ;https://registry.npmjs.org/@univerjs/presets (访问日期 2026-09-28)
[7] npm registry. 包依赖与许可核验:@univerjs/sheets-chart 不存在;@univerjs-pro/sheets-chart@1.0.2、@univerjs-pro/chart-ui@1.0.2、@univerjs-pro/engine-chart@1.0.2 存在;@univerjs/preset-sheets-advanced@1.0.2 无 license 字段且依赖 25 个 @univerjs-pro/* 包;@univerjs-pro/license@1.0.2 描述为「License management plugin and services for Univer Pro」. https://registry.npmjs.org/ (访问日期 2026-09-28)
[8] GitHub Releases. dream-num/univer 发行记录:v1.0.0(2026-09-24T03:27:43Z)、v1.0.1(2026-09-24T08:44:44Z)、v1.0.2(2026-09-24T11:32:24Z). https://github.com/dream-num/univer/releases (访问日期 2026-09-28)
[9] Ziemann M, Eren Y, El-Osta A. Gene name errors are widespread in the scientific literature. Genome Biology, 2016, 17(1). DOI: 10.1186/s13059-016-1044-7
[10] Univer Skills 官方仓库与 univer-cli skill 定义(含 npm install -g univer-cli、univer doctor、univer skills get core、trunk 与 worktree 定义、「Command success is not correctness evidence」、Node >= 24.0.0、各 Unit 导入导出格式表、白板不支持文件导入导出、升级后需 reload skill). https://github.com/dream-num/skills ;https://github.com/dream-num/univer-cli (访问日期 2026-09-28)
[11] Univer Skills 官方仓库 README(7 个 skill 清单,含 univer-pro-integrate 面向「licensed」能力、univer-customize-theme 含 Pro Chart themes;环境徽章标注 Linux | macOS;支持 Claude Code / Codex / Cursor;npx skills add 安装方式). https://github.com/dream-num/skills (访问日期 2026-09-28)
[12] Broman K W, Woo K H. Data Organization in Spreadsheets. The American Statistician, 2018, 72(1): 2-10. DOI: 10.1080/00031305.2017.1375989
[13] Ma Z, et al. SpreadsheetBench: Towards Challenging Real World Spreadsheet Manipulation. arXiv preprint, 2024. DOI: 10.48550/arXiv.2406.14991