约 16 B
每单元格(V4 约 150–200 B)
3
平台 —— WinForms · WPF · Avalonia
122
公式函数
0
外部依赖(XLSX / PDF 输入输出)
有哪些变化
V5 不是一次增量更新 —— 数据模型、渲染和输入输出都经过重新设计。以下是您最先能感受到的变化。
01
完全虚拟化的核心
引擎从零重建,处理量与可见窗口成正比,而不是与工作表大小成正比。每个单元格约占 16–23 字节(实测),而 V4 约为 150–200 字节;Excel 上限尺寸的工作表(1,048,576 × 16,384)始终可用 —— 采用稀疏存储,空白区域不占用任何内存。
02
为百万行数据集而生
完全虚拟化加上内置的智能延迟加载管理,让 V5 可以渲染百万行量级的数据集而始终保持流畅。在 V4 中需要应用程序自行管理延迟加载,V5 则完全自动 —— 操作更顺滑,需要编写和维护的代码也更少。
03
新平台:Avalonia
在 WinForms 和 WPF 之外,V5 新增了 Avalonia —— 让 ReoGrid 可用于 Windows、macOS 和 Linux 上的跨平台 .NET 桌面应用。一个许可证涵盖全部三个平台。
04
无界面与服务端运行
核心与界面无关:可以在服务器或批处理作业中构建、计算和转换工作簿,无需任何控件和窗口 —— 包括在 Linux 和 macOS 上。
using unvell.ReoGrid.Core;
using unvell.ReoGrid.IO.Excel;
using unvell.ReoGrid.IO.Pdf;
var workbook = XlsxReader.Read("input.xlsx");
var sheet = workbook[0];
sheet.SetNumber(1, 1, 500);
sheet.Recalculate(); 05
直接导出 PDF,零外部依赖
一行代码导出 PDF —— 无需外部包,不依赖 System.Drawing,并已内嵌 CJK 字体。核心能运行的地方它就能运行,包括 Linux/macOS 服务器。
using unvell.ReoGrid.IO.Pdf;
PdfExporter.Export(wb, "book.pdf"); // 所有工作表
PdfExporter.Export(ws, "sheet.pdf"); // 单个工作表
byte[] bytes = PdfExporter.ExportToBytes(wb); 06
流式 XLSX 与延迟加载
XLSX 读取器直接流式写入稀疏存储,因此内存占用只跟随实际存在的单元格。超大文件可以按工作表延迟加载后打开。
using var virtualBook =
XlsxReader.OpenVirtual("large.xlsx", SheetLoadMode.OnDemand); 07
122 个公式函数,基于依赖关系重算
公式引擎会跟踪依赖关系,只重算发生变化的部分,并支持跨工作表引用和定义名称。
08
Excel 格式代码与 OOXML 条件格式
数字格式直接采用 Excel 自身的格式代码字符串,实现 XLSX 无损往返;条件格式达到 OOXML 完整覆盖 —— 包含图标集。
09
迷你图单元格类型
新增内置的迷你图单元格类型,与复选框、下拉框、进度条、按钮和超链接一起 —— 全部以共享的享元描述符实现,在大型工作表上依然轻量。
10
批注、验证、保护、查找与替换
单元格批注在 XLSX 往返中保留作者和文本。数据验证涵盖兼容 Excel 的列表、比较和自定义公式。工作表保护遵循 Excel 的双层模型 —— 默认锁定所有单元格,再解锁需要填写的区域 —— 保存在按区域划分的旁表中,因此解锁整列只需一条记录。查找与替换可搜索值、公式和批注,支持正则表达式,可限定区域或整个工作簿。
11
隔行条纹、文字旋转、打印标题
隔行条纹是工作表级的单个对象,在渲染时解析,因此为一百万行加条纹只需一个对象,并且在排序、筛选和插入行之后依然正确。旋转和竖排文字以及单元格缩进在全部四个绘制层上都被支持;打印时可在各页重复打印标题,并提供 Excel 风格的页眉和页脚。
V4 与 V5 对照
许可证与版本无关 —— 一个 ReoGrid One 许可证涵盖两者,密钥相同。可按项目选择:需要性能、平台覆盖和服务端能力时选 V5;当前需要图表、形状或数据绑定时选 V4。
| 功能 | V4 | V5 |
|---|---|---|
| 核心与性能 | ||
| 完全虚拟化核心(处理量与可见区域成正比) | ||
| 每个单元格的内存占用 | 约 150–200 B | 约 16–23 B(实测) |
| 始终可用的 Excel 上限尺寸(1,048,576 × 16,384) | 预先分配行 | 稀疏存储 —— 未使用则不占用内存 |
| 与界面无关的核心(无界面 / 服务端 / 批处理) | ||
| 平台 | ||
| WinForms / WPF | ||
| Avalonia(Windows / macOS / Linux) | ||
| 支持的 .NET 版本 | .NET Framework 4.8 / .NET 8 | .NET 10 |
| 原生高 DPI 渲染 | 部分支持 | |
| 公式与格式 | ||
| 内置公式函数 | 100 个以上 | 122 个(基于依赖关系的重算) |
| 跨工作表引用与定义名称 | ||
| 数字格式 | 专有标志方式 | Excel 格式代码字符串(与 XLSX 无损往返) |
| 条件格式 | OOXML 完整支持,含图标集往返 | |
| 单元格内富文本 | ||
| 隔行条纹、文字旋转与缩进 | 条纹在渲染时解析 —— 排序和筛选后依然正确 | |
| 单元格类型与编辑 | ||
| 内置单元格类型 | 复选框、下拉框、按钮、超链接、日期选择器、单选框、数字输入、图片等 | 复选框、下拉框、进度条、按钮、超链接、迷你图(新增)+ 自定义 |
| 撤销/重做、排序、筛选、大纲、剪贴板、自动填充 | ||
| 数据绑定(IDataSource) | V5.0 尚未支持 —— 请使用循环写入 | |
| 数据验证 | IValidator + 验证事件 | 兼容 Excel 的规则 —— 列表、比较、自定义公式,支持 XLSX 往返 |
| 查找与替换 | 可搜索值、公式和批注;支持正则表达式;可限定区域或整个工作簿 | |
| 工作表保护与单元格锁定 | 工作表级和区域级只读 | 与 Excel 相同的双层模型 —— 按单元格锁定、权限标志、XLSX 往返 |
| 图表与绘图 | ||
| 图表 | V5.0 尚未支持(无确定时间)—— 可用同一许可证继续使用 V4 | |
| 单元格批注 | 支持批注(含 XLSX 往返;不支持会话式评论) | |
| 形状与文本框 | V5.0 尚未支持(图片已支持) | |
| 锚定到单元格的图片 | ||
| 输入输出与打印 | ||
| XLSX 读/写 | 流式读取 + 超大文件的按表延迟加载 | |
| CSV / JSON | CSV | CSV + reogrid-json(与 ReoGrid Web 通用) |
| RGF(旧格式) | 不支持 —— 请通过 XLSX 迁移 | |
| PDF 导出 | 仅通过打印 | 直接导出、零依赖、内嵌 CJK 字体 —— 可在 Linux/macOS 服务器上运行 |
| 打印 | WinForms / WPF,共享同一分页引擎,支持打印标题和页眉/页脚(Avalonia 打印尚未支持) | |
| 脚本与许可证 | ||
| ReoScript | 已移除(不会恢复) | |
| 许可证 | 一个 ReoGrid One 许可证同时涵盖两者 | 相同的许可证和密钥 —— 无需重新签发 |
V5.0 尚未具备的功能 —— 以及应对方式
V5 与 V4 的 API 不向后兼容,并且部分 V4 功能未包含在首个版本中。这些功能没有确定的时间表 —— 将根据需求情况评估。V4 不会停止供应:它继续销售并持续获得支持;由于许可证与版本无关,同一个许可证和密钥同时涵盖两者。如果您现在就需要下列任一功能,请使用 V4 —— 无需额外费用,也无需重新签发密钥。
以上链接为英文文档。中文版 V5 文档正在准备中。
运行环境:V5 面向 .NET 10(SDK 10.0.301 及以上)。WinForms 和 WPF 运行于 Windows;Avalonia 支持 Windows、macOS 和 Linux。V4(.NET Framework 4.8 / .NET 8)保持不变。