news 2026/9/14 21:30:35

Univer 版本演进全景解读:从 0.1.0-beta 到 1.0.0-beta 的两年架构之旅

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Univer 版本演进全景解读:从 0.1.0-beta 到 1.0.0-beta 的两年架构之旅

Univer 版本演进全景解读:从 0.1.0-beta 到 1.0.0-beta 的两年架构之旅

【免费下载链接】univerUniver is a full-stack framework for creating and editing spreadsheets / word processor / presentation on both web and server.项目地址: https://gitcode.com/GitHub_Trending/un/univer

Univer 是一个覆盖电子表格(Sheets)、文档(Docs)与演示文稿(Slides)的全栈办公套件框架,同时支持 Web 与服务端运行。本文以仓库根目录的 CHANGELOG.md 为绝对主线,系统梳理 Univer 从 2024 年 2 月的0.1.0-beta到 2026 年 8 月的1.0.0-beta之间 30 多个版本的技术演进脉络:架构如何从单体走向模块化再收敛回 1.0 的 Base 架构、公式引擎如何扩充到数千函数级规模、Docs 编辑器如何从纯文本成长出表格/页眉页脚/分页、暗色模式与 RTL 国际化何时落地,以及版本背后的工程化工具链(turbo、pnpm、vitest、playwright、verso)。读完本文,你可以把两年间的每次发版都映射到具体的功能与源码模块,快速理解当前仓库的目录结构和能力版图。

这份 Changelog 的形态与生成机制

在深入版本内容之前,先弄清楚这份 Changelog 是怎么生成的,这决定了它的可靠性与检索价值。

仓库根目录的 verso.toml 给出了完整答案:

[version] root_package = "package.json" [workspaces] patterns = [ "common/*", "packages/*", "presets", "presets/packages/*", ] include_root = true [changelog] infile = "CHANGELOG.md" preset = "angular" [git] commit_message = "chore(release): release v${version}" tag_name = "v${version}" push = "follow-tags"

几个关键事实:

  • CHANGELOG.md 由 verso 工具自动生成1.0.0-alpha.1版本中明确记录了migrate from release-it to verso(构建链迁移),此后版本发布由 package.json 中的"release": "verso"脚本驱动,提交信息遵循chore(release): release v${version},tag 采用v${version}
  • 分类遵循 Angular Commit Message 约定。整份文档按Bug FixesFeaturesPerformance ImprovementsOther Changes (build / chore / ci / docs / refactor / test)RevertsBREAKING CHANGES分组,每个条目带 PR 号与提交哈希,可直接回溯。
  • 版本号管理以根 package.json 为准。当前仓库根package.json的 version 字段为1.0.0-beta.2,说明发布管线已经过 beta.0 → beta.1 → beta.2 的迭代,Changelog 头部可能略滞后于最新构建产物。
  • workspace 覆盖common/*packages/*presets及其子包,与仓库实际目录结构完全一致,changelog 中出现的包名前缀(如sheets-uiengine-renderdocs-drawing)均可映射到 packages/ 下的同名目录。

因此,这是一份结构规整、条目可回溯、与源码目录一一对应的高质量变更记录,非常适合作为技术文章的事实骨架。

发布节奏与版本时间线

从 CHANGELOG.md 中可以还原出清晰的发布节奏,先看整体时间线(所有日期均来自文档原文):

阶段版本区间时间主题关键词
早期探索0.1.0-beta.5 ~ 0.1.172024-02 ~ 2024-06编辑器基础、公式函数扩充、permission 雏形、数据验证/条件格式起步
功能扩展0.2.0 ~ 0.2.152024-07 ~ 2024-09Doc 表格、页眉页脚、uni mode、pivot、定义名称、action-recorder
Facade 爆发0.3.0 ~ 0.5.02024-09 ~ 2024-11Facade API 全面铺开、公式函数大规模补充、render unit 系统
现代化改造0.6.0 ~ 0.9.02025-02 ~ 2025-07skeleton 拆分、暗色模式、Vue3/Web Component 适配、表格(table)支持
协作与协议0.10.0 ~ 0.25.02025-07 ~ 2026-05thread-comment、filter/table、公式依赖树、protocol 包、RTL、区域化货币
1.0 收敛1.0.0-alpha.0 ~ 1.0.0-beta.02026-06 ~ 2026-08Base 架构 v1、presets 并入、SSC/Uniscript 移除、公式包合并、跨工作簿引用、Word 兼容分页

几点观察(基于文档事实):

  • 早期(0.1.x)几乎每周一版,功能增量密集,典型如 0.1.1(2024-03-01)到 0.1.17(2024-06-28)的 17 个补丁版本,主要打磨编辑器内核与公式函数。
  • 0.2.x 是能力爆发期,Doc 编辑器表格、页眉页脚、uni mode、pivot 透视表、定义名称、超链接、评论(thread-comment)、数据绑定等大功能都在这一时期落地。
  • 0.5.0 之后节奏明显放缓(2024-11 到 2025-02 出现约三个月空档),随后 0.6.0 起每 1~2 周一次小版本,进入稳定的"周更"节奏,直至 1.0.0-alpha。
  • 1.0.0-alpha 系列(2026-06-24 ~ 2026-07-29)每周一个 alpha,属于集中收尾期:大量删除旧 API、合并重复包、清理历史债务,为 beta 铺路。
  • 特别地,1.0.0-alpha.5条目为No classifiable changes,说明 alpha 发布管线也支持"无变化也可发版"的占位语义。

架构主线:从单体到模块化,再到 1.0 的收敛

Changelog 最能体现"架构演进"价值的部分,是贯穿始终的重构类提交(Other Changes (refactor))。梳理下来有一条非常清晰的脉络。

早期:功能即插即用,模块按业务划分

0.1.x ~ 0.2.x 时期,仓库已经按功能域拆出sheetsdocsslidesengine-renderengine-formuladesignui等包,与今日 packages/ 目录的形态一致。功能以"插件"形式注册,例如 0.1.4 起陆续出现的 conditional-formatting、data-validation、defined name、sort、filter、hyperlink、thread-comment 等,都是独立的packages/*包。

渲染层重构:skeleton 拆分与 render unit 系统

渲染架构有过两次关键调整:

  • 0.6.0-alpha.0split skeleton into core and render-engine,把原本耦合在表格里的 skeleton(骨架计算)拆到 core 与渲染引擎之间,为后续多编辑器共享渲染基础设施打基础。
  • 0.8.0engine-render: add render unit system(#2025),引入渲染单元系统,支持在单一 canvas 场景中挂载多个渲染单元;0.6.0 同期还加入了ui: support switching render unit。这套机制是如今 examples 中sheets-multi-units多实例/多单元示例的基础,可参考 examples/src/sheets-multi-units/。

1.0.0-alpha:Base 架构 v1 与债务清理

1.0.0-alpha.0(2026-06-24)是里程碑版本,核心提交是base: version 1(#6979)。从后续 alpha 的 refactor 条目可以推断其内涵:

  • 数据层抽象(Base):1.0.0-alpha.0 起逐步出现base hierarchy contracts(#7391)、Base date field config types(#7374)、Base attachment value type(#7317)、Base conditional coloring types(#7407)、RecordLink field configuration(#7386)等,说明 1.0 将表格/文档共有的"记录、层级、字段"抽象为统一的 Base 数据模型;base: remove deleted snapshot fields(#7239)则表明 Base 快照字段被同步清理。
  • 移除历史包袱remove SSC functionality(#7267、#7264)、harden custom code execution paths and remove Uniscript(#7217)、remove deprecated APIs(#7358)、remove obsolete value state(#7356)、remove deprecated changeDoc API(#7349)、remove getUniverSheetInstance(#7343)、remove deprecated getRenderById(#7335)——SSC(Server-Side Calculation?从"remove SSC function"与公式相关提交看,它是一套旧的公式服务兼容层)与 Uniscript(脚本面板)在 1.0 被整体移除,自定义代码执行路径被加固。
  • 公式包合并consolidate formula packages into engine-formula(#7321)、merge formula plugin into engine(#7322),最终在 packages/engine-formula/ 下形成 1500+ TS 文件的巨型引擎包。
  • 预设(Preset)体系落地merge univer-presets into univer(#6703),把原先独立的 presets 仓库并入主仓库,成为根目录 presets/ 与 presets/packages/ 下的若干@univerjs/preset-*包。以 presets/packages/preset-sheets-core/src/preset.ts 为例,UniverSheetsCorePreset(config)会把 Network、Docs、RenderEngine、UI、Sheets、Numfmt、Formula 等插件按依赖顺序组装成一个IPreset,用户只需createUniver({ presets: [UniverSheetsCorePreset()] })即可启动一套完整的表格应用(见 presets/packages/preset-sheets-core/README.md)。

工程化:release-it → verso

  • 0.15.1之前由 release-it 驱动发布;1.0.0-alpha.1完成migrate from release-it to verso后,verso.toml 成为发布唯一入口,配合pnpm run release一键发版。
  • 构建与测试统一由 turbo 编排:根 package.json 中buildtesttypecheckcoverage均为turbo命令;test:e2e走 playwright.config.ts,单元测试走 vitest.workspace.ts 聚合各包 vitest 配置。
  • 样式体系从 Less 全面迁移到 TailwindCSS(如 0.7.0-beta.1numfmt: refactor less to tailwindcss、0.8.0-beta.0 多个refactor less to tailwindcss),因此每个 UI 包都带有tailwind.config.tspostcss.config.mjs

电子表格(Sheets)核心能力演进

Sheets 是 Univer 最成熟的产品线,changelog 中与其相关的条目占绝对多数。按能力域梳理如下。

公式引擎:从补函数到依赖图

公式引擎的演进可分为三个阶段:

  1. 函数扩充期(0.1.x ~ 0.5.x):几乎每个版本都有formula: add some xxx functions,覆盖数学、文本、日期、统计、查找、财务、工程、逻辑、信息类函数;0.2.7 起补充leftb/mid/rank/rank.avg/rank.eq,0.4.0-alpha.0 加入regexextract/regexmatch/regexreplace正则族,0.5.0 加入ARRAY_CONSTRAIN/FLATTEN/ISBETWEEN/MARGINOFERROR等数组与统计函数,0.5.3 支持register async function,0.4.2 的bycol/byrow/map/reduce/scan标志着函数式数组能力落地。
  2. 引擎深化期(0.10.x ~ 0.25.x):0.10.0 增加cell inverted index cache倒排索引缓存以加速大范围查找;0.12.0 支持table formula(结构化表格引用)并修复数组公式溢出缓存;0.12.1 支持AGGREGATEIMAGE公式;0.13.0 引入formula dependency apidependency tree and calculation api,公式从"逐格重算"升级为"依赖图驱动";0.23.0 推出formula engine dependency系列重构。
  3. 1.0 收敛期(1.0.0-alpha 系列)engine-formula: support cross-workbook references(#7292)打通跨工作簿引用;host external reference contract(#7338)定义宿主外部引用契约;同时sheet: improve Excel formula and rendering compatibility(1.0.0-beta.0)把兼容性目标明确指向 Excel。公式包的合并使 packages/engine-formula/ 成为当前仓库最大的单一源码包(1530 个 TS 文件)。

数据验证(Data Validation)

数据验证是 sheets 中迭代最持久的功能之一:

  • 0.1.4 ~ 0.1.8起步:support data validation、validator 状态查询、DataValidationListCacheService缓存。
  • 0.4.x ~ 0.6.x完善:any-validator and allowBlank选项、下拉搜索框、错误样式(errorStyle=STOP)、日期验证支持时间、getValidatorStatusAsyncAPI。
  • 0.8.x ~ 0.12.x聚焦性能与细节:修复极端大范围 OOM、列表值逗号保留、跨工作表引用、checkbox 复制状态、粘贴时联动公式计算。
  • UI 侧同步演进,最终形成 packages/sheets-data-validation-ui/ 与核心包 packages/sheets-data-validation/ 分离的格局。

条件格式(Conditional Formatting)

  • 0.1.5引入条件格式基础;0.1.16 ~ 0.1.17修复数据条渲染、iconSet 缺失区域化等问题。
  • 0.2.x ~ 0.4.x持续修复跨工作表复制粘贴、排名计算、stopIfTrue 逻辑、隐藏行影响等。
  • 1.0.0-alpha起被纳入 Base 抽象:Base conditional coloring types(#7407),并与record identityhierarchy contracts等 Base 概念对齐。

筛选、排序与表格(Filter / Sort / Table)

  • 筛选:0.1.8 引入sheets: filter,随后持续修复跨工作表回滚、日期分组、按颜色筛选、导入 Excel 隐藏行、filter range 随行/列删除联动等问题;0.10.0 增加sheets-filter sync switch配置。
  • 排序:0.1.16 引入 sort 功能与自定义排序面板,0.2.x 修复自定义排序列索引错误。
  • 表格(Table / 超级表):0.7.0-beta.0 的table support(#4831)与sheets-table系列包是里程碑,随后补齐表筛选行按工作表隔离、表格名称唯一性校验(不能与定义名称重复)、跨工作表公式引用、filter panel 布局等;1.0.0-alpha.4 修复表公式 resolver 在测试床的注册问题。

绘图、图片与图表(Drawing / Image / Chart)

  • 0.1.13sheets and docs drawing统一绘图模型;0.1.14 支持 drawing print;0.2.x 起图片支持外部粘贴、缩放旋转、单元格内图片(cell image)。
  • 0.5.x ~ 0.7.x:drawing 分组/排列/对齐右键菜单、shape 文本编辑、drawing group facade api
  • 1.0.0-alphasheets-drawing: complete anchor placement API(#7379)、transform drawings with sheet structure(#7312)、drawing object list metadata(#7195),并把图片 IO API 收敛到 core。

定义名称(Defined Name)

从 0.1.4sheet: defined name起步,到 0.2.x 支持名称框输入与公式引用,再到 0.13.0 的formula bar defined name input focusset defined name in formula bar,0.22.0 增加 defined name 权限控制器,0.23.0 优化 lexer.treeBuilder 性能,形成完整闭环。实现可参考 packages/sheets/ 下的相关命令与 examples 中的 facade 示例。

数字格式(Numfmt)

  • 0.1.2 ~ 0.1.4 支持 enUS、percent、自定义格式;0.2.x 增加货币快捷键国际化、区域本地化。
  • 0.6.x ~ 0.8.x 期间numfmt模型重构(#1945)并与 sheets 解耦为独立包 packages/sheets-numfmt/。
  • 0.10.0 起支持区域感知的货币格式(region-aware currency formats),1.0.0-beta.0 修复空格式结果保留问题。

剪贴板、冻结、合并单元格与自动填充

  • 剪贴板:跨版本持续强化,包括 HTML 转义(0.22.0)、Excel 复制文本解析(0.10.x)、合并单元格边框粘贴(0.15.1)、富文本换行保留(0.6.1)、不支持的 Clipboard API 环境的内部粘贴菜单(0.15.1)。
  • 冻结:0.15.0 优化冻结菜单、0.2.x 修复插入行列后冻结更新;0.10.11 引入freezeSync配置,控制实时协作中冻结状态是否同步给其他用户。
  • 合并单元格:贯穿多个版本修复边框、撤销、复制粘贴、隐藏行列、自动行高联动等问题。
  • 自动填充(autofill):0.2.11 起修复扩展规则、日期规则、跨冻结线滚动复位、填充时选择状态等,0.12.3 提供 facade 自动填充 API。

文档编辑器(Docs)演进

Docs 编辑器是 changelog 中仅次于 Sheets 的第二大主题,其成长轨迹非常清晰:

  • 起步(0.1.x):文本编辑、富文本内联格式、段落样式、列表(bullet/ordered)、光标与 IME、查找替换(0.1.3)、Zen 编辑器。
  • 表格与绘图(0.2.x)doc support table(0.2.7)、表格跨页断行、表格单元格内列表、文档内图片布局(0.1.10)、drawing 统一支持。
  • 页眉页脚与分页(0.2.0 → 1.0.0):0.2.0 引入 header/footer(并声明默认值为 true 的 BREAKING CHANGE),0.4.2 支持现代模式(modern mode,无边距连续流式排版)与传统分页模式切换;1.0.0-alpha.8 实现Word-compatible pagination(#7334),文档排版向 Word 对齐。
  • 交互增强(0.6.x ~ 0.9.x):段落菜单、浮动工具栏(FloatToolbar)、标题菜单(heading-menu)、快速插入菜单(quick-insert,支持表格与图片)、checklist、doc hover 服务、目录/侧边菜单。
  • 1.0 时代agent-friendly text range lookup(#7329)与agent-friendly facade APIs(#7243)——文档明确面向 Agent/LLM 场景提供友好的文本范围查询与门面 API;support inline formula custom ranges(#7360)、rich text columns(#7262)、column group document flow(1.0.0-alpha.1)。

对应源码可参阅 packages/docs/、packages/docs-ui/、packages/docs-drawing/ 等包。

演示文稿(Slides)演进

Slides 起步较晚且节奏克制:

  • 0.2.5 ~ 0.2.7支持文本编辑、形状与图片编辑、元素更新操作、工具栏/侧边栏。
  • 0.8.2 ~ 0.10.x修复导入错误、getRenderUnitByPageId参数问题。
  • 1.0.0-alpha改用model-authoritative slide rendering(#7378),即以数据模型为权威进行渲染,为后续协作奠定基础。对应 packages/slides/ 与 packages/slides-ui/。

Facade API:让一切可编程

Facade(门面)API 是 Univer 面向开发者与 Agent 的主要编程接口,changelog 中facade:前缀条目超过百条:

  • 0.1.9 ~ 0.1.17:workbook/worksheet 基础操作、onBeforeCommandExecute、set font API。
  • 0.5.x 爆发make facade api sync and chainable(0.5.3)、FRange.getValues、merge facade、find-replace facade、formula facade、ui facade、f-enum事件枚举、clipboard hooks。
  • 0.6.x ~ 0.10.x:数据验证、条件格式、筛选、排序、权限、hyperlink、comment、drawing、image、URL、shortcut、menu 等 facade 全面补齐;0.10.13 增加manual initialization supportisCellEditing
  • 1.0 时代agent-friendly系列 API、text range lookupsection facadeelement facadedocument element facade(#7156)、image facade(#7278)。

核心实现分布在各包的facade/子目录与 packages/core/src/facade/,预设包通过import '@univerjs/sheets/facade'等副作用导入聚合(见 presets/packages/preset-sheets-core/src/preset.ts)。

UI 组件库与主题系统

packages/design/ 是 Univer 自研的 UI 组件库,changelog 记录了组件的持续补全:DatePicker/DateRangePicker、Slider、ColorPicker(含 RGBA、hex、HSV)、DropdownMenu、Checkbox/RadioGroup、Tree、KBD、Segmented、Textarea、InputNumber、ButtonGroup、Gallery、HoverCard、Accordion、Badge、MultipleSelect、Panel、Calendar(含年月快捷选择)等。

主题系统方面:

  • 0.7.0引入暗色模式(support dark mode)与darkMode配置、ThemeService 暗色支持。
  • 1.0.0-alpha.8增加 yellow 主题;1.0.0-alpha.0 增加 orange、purple 主题。对应 packages/themes/ 下的主题包与 examples/src/theme-customizer/ 主题定制示例。

国际化、RTL 与本地化

  • 语言覆盖:文档明确记录了 zh-CN、en-US、ru-RU(0.1.11)、fr-FR(0.5.1)、ja-JP(0.12.0)、ko-KR(0.8.3)、es-ES 与 ca-ES(0.9.3)、sk-SK(0.15.4)、vi-VN(0.2.3)、zh-TW(0.2.3),1.0.0-alpha.1 又统一重构了多语言 locale 键。
  • RTL 支持:0.23.0 为 UI 增加 RTL 方向支持(add RTL direction support for UI),随后 0.10.x 系列集中修复画布 LTR 回退、日历 RTL、numfmt 方向等;0.4.0-alpha.0 曾支持 farsi(波斯语)i18n。
  • 区域化细节:0.10.2 起货币格式随语言包切换(region-aware currency formats),数字格式化跟随 locale。

平台兼容性:React、Vue、Web Component、移动端与运行环境

从 changelog 的Other Changes (chore)bugfix条目可以还原出完整的兼容矩阵:

  • React:仓库提供 scripts/react-version-manager.mts 在 React 16 / 19 之间切换(package.json 的use:react16/use:react19脚本),历史上针对 React 16(0.2.3)、React 18 严格模式(0.1.11、0.6.5)、React 19(1.0.0-alpha.8upgrade React and consolidate tests)都有专门修复。
  • Vue3 与 Web Component:0.9.0 支持通过适配器注册 Vue3 / Web Component 构建的 UI 组件(packages/ui-adapter-vue3/、packages/ui-adapter-web-component/);0.8.0-beta.0 增加 webcomponent 演示;1.0.0-alpha.2 泛化为generic component framework adapters
  • 移动端:0.1.17 初始化基础移动能力,0.2.0 补滚动与选择,0.18.0 增加移动端 Ribbon 与上下文菜单,0.25.0 修复冻结区滚动残影、向上滚动页面跳动等问题;examples 中有 examples/src/sheets-mobile/ 独立示例。
  • 运行环境:SSR 支持(0.1.4)、Node.js 环境下的 facade 操作(0.21.1 修复FRange.setValuedocument is not defined、0.8.3 修复 opentype 深导入的 Node ESM 兼容)、Electron 中禁用 queryLocalFonts(0.10.2)、Chrome 88 兼容(1.0.0-beta.0)、Safari < 18 画布缓存修复(1.0.0-alpha.8)。仓库 docs/ISOMORPHIC.md 是服务端同构运行的专门文档。

协同、权限与实时编辑

  • 权限系统(permission):0.1.13 引入后持续迭代;0.4.2 将初始权限默认值改为 false(更安全的默认值);0.22.0 增加 defined name 权限控制器;0.25.0 增加 workbook/worksheet 权限点与checkWorksheetPermissionPoint/checkWorkbookPermissionPoint;1.0.0-alpha 时期把权限数据从 "owner permission inherit marker"(0.20.1)演进到 Base 模型。实现集中在 packages/sheets/src/ 下的 permission 目录与 docs/tldr/permission.tldr 架构图。
  • 评论与批注(thread-comment / note):0.1.12 起 sheets 评论支持,0.2.x 增加文档评论数据源,0.9.x 优化编辑流程;批注(note)独立成 packages/sheets-note/。
  • 实时协作基础设施:share cursor、协同光标、undo/redo 历史、snapshot 变换迁入 core(0.1.3)、before-close事件、文档changeDocAPI 的移除与重构,以及 0.21.0 新增的 packages/protocol/ 协议包(定义跨端消息契约,如UpdateCollaborator)。

性能与质量:changelog 里的隐性工程账

Performance Improvements分组勾勒了性能优化的完整版图:

  • 渲染:viewport 缓存(0.1.13move cache to viewport)、单元格渲染与自动行高优化(0.8.0-beta.1)、合并单元格大数量渲染优化(0.16.0)、增量滚动渲染(0.16.0)、合并感知的增量滚动(1.0.0-beta.0)、emoji 选择器虚拟化(1.0.0-beta.0)。
  • 公式:依赖维护(0.1.8)、倒排索引缓存(0.10.0~0.12.0 多轮)、增量更新(1.0.0-alpha.4)、内存泄漏修复(0.12.0)、大范围 COUNTIFS 内存溢出(0.17.0)。
  • 内存治理:文档中反复出现memory leak修复,仓库还有专门的 docs/FIX_MEMORY_LEAK.md 与 e2e 内存用例 e2e/memory/memory.spec.ts、disposing 用例 e2e/disposing/。
  • 质量体系:vitest 单测、Playwright e2e(e2e/ 下含 smoking、perf、ref-range、visual-comparison 等目录)、coverage 分片脚本 scripts/coverage-shard.mts。

升级视角:值得关注的 BREAKING CHANGES

文档明确标注的破坏性变更虽少但重要,升级到 1.0 时需注意:

  1. 布尔值存储(0.1.4)TRUE/FALSE从字符串改为数字1/0存储(对应sheets: boolean should store as number)。
  2. 页眉页脚默认值(0.1.12)headerfooter默认值改为true
  3. 1.0.0-alpha 系列的 API 清理changeDocAPI、getUniverSheetInstancegetRenderById、SSC、Uniscript、getUniverSheetInstance等被移除,自定义代码执行路径被加固——如果你在旧版本上深度使用这些 API,需要按 docs/API_STABILITY.md 的稳定性约定评估迁移。
  4. 公式包合并:公式相关功能统一从engine-formula导出,包入口发生变化。

如何在当前仓库验证与跟进

  • 核对版本:根 package.json 的 version 与 CHANGELOG.md 头部对照,确认当前处于 1.0.0-beta 系列。
  • 阅读骨架:docs/NAMING_CONVENTION.md 解释了包命名约定;docs/API_STABILITY.md 定义了 API 稳定性承诺;docs/ISOMORPHIC.md 说明服务端同构约束。
  • 快速上手:按 presets/packages/preset-sheets-core/README.md 安装@univerjs/preset-sheets-core,用createUniver({ presets: [UniverSheetsCorePreset()] })启动;presets/src/index.ts 展示了 preset 入口聚合 core 与 themes。
  • 跑起来看:仓库提供pnpm dev(examples 演示)、pnpm test(turbo 聚合单测)、pnpm test:e2e(Playwright)、pnpm build等脚本(见 package.json),examples 目录 examples/src/sheets/、examples/src/sheets-multi/ 等覆盖了 changelog 中提到的多实例、多单元、移动端、WebComponent 等几乎所有场景。

结语

把 CHANGELOG.md 从头读到尾,Univer 两年多的技术路线图就清晰了:从 0.1.x 的"跑通编辑器与公式",到 0.2.x~0.5.x 的"功能铺满三大编辑器 + Facade 可编程化",再到 0.6.x~0.25.x 的"暗色模式、国际化 RTL、协议与协作、性能治理",最后在 1.0.0 系列完成 Base 数据架构收敛与历史债务清理。这份 changelog 本身就是最好的源码导航:每条变更都能在 packages/、common/、presets/、examples/ 中找到对应的实现与示例。对想要深入 Univer 源码、评估升级路线或研究办公套件工程化实践的开发者来说,它是无可替代的入口。

【免费下载链接】univerUniver is a full-stack framework for creating and editing spreadsheets / word processor / presentation on both web and server.项目地址: https://gitcode.com/GitHub_Trending/un/univer

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/14 21:29:56

基于Flask的会议室预定系统开发实战

1. 项目概述&#xff1a;为什么需要会议室预定系统&#xff1f;在现代化办公环境中&#xff0c;会议室资源的高效管理一直是企业行政管理的痛点。传统的手工登记方式不仅效率低下&#xff0c;还经常出现"会议室冲突"、"预定信息丢失"等问题。我曾在某中型互…

作者头像 李华
网站建设 2026/9/14 21:29:56

直驱永磁风电机组背靠背双PWM变流器Simulink建模与并网控制策略详解

直驱永磁风电机组这几年在风电行业里的占比越来越高&#xff0c;很多做并网控制、变流器研发的工程师和研究生&#xff0c;都会在 Matlab/Simulink 里搭一套仿真模型来验证控制策略。我见过不少人拿到模型后第一件事就是跑波形&#xff0c;结果要么发散、要么电流畸变严重&…

作者头像 李华
网站建设 2026/9/14 21:29:48

基于Python Flask的新冠疫情可视化系统与ECharts大屏开发

简介&#xff1a;一份基于PythonFlask框架实现的新冠疫情可视化项目源码&#xff0c;目标用户是Python初学者、期末大作业及课程设计人群&#xff0c;覆盖数据抓取、接口封装、ECharts动态图表和前端页面交互的完整实现链路&#xff0c;代码内附详细注释&#xff0c;下载后简单…

作者头像 李华
网站建设 2026/9/14 21:29:46

Cursor AI 连上 TaoToken 后能写完微信小程序页面

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/14 21:28:33

搞半天Python数据分析,原来numpy.array才是Pandas这尊大神的祖宗

是针对借助 NumPy 而产生的一种工具载体范畴, 此工具载体范畴是因致力于解决数据分析任务从而被创建的。它收纳了大量的库以及一些标准的数据模型, 为高效操作大型数据集提供了所需工具。它还搭建起大量能助力我们迅捷便利处理数据的函数以及方法。简洁来讲, 你能够将其视作是 …

作者头像 李华