ReoGrid One is the product name of the version 5 line of ReoGrid, the spreadsheet component for .NET, redesigned from scratch. Everything from the data model to rendering has been rebuilt, and it is not backward compatible with V4.

What changed
V4’s performance ceiling came from its design, not from implementation details (one CLR object per cell, dense row and column headers, a style instance per cell). V5 rebuilds everything starting from the data model.
| V4 | V5 (ReoGrid One) | |
|---|---|---|
| Memory per cell | ~150–200 B | ~16–23 B. Empty cells cost nothing |
| Cell values | boxed object | 16-byte CellValue struct + shared string pool |
| Styles | mutable class + PlainStyleFlag bitmask | immutable record StyleRecord + interning. Inheritance: cell ◁ row ◁ column ◁ sheet |
| Rendering and operations | some work still proportional to sheet dimensions | Fully virtualized. Work is proportional to the visible range |
| Model and UI | ReoGridControl is the entry point; the model is tightly coupled to the UI | Workbook / Worksheet are UI-independent. Complete without a control |
| Platform branching | #if WINFORM / WPF | Separated by class structure (swappable IGridGraphics implementations) |
| Supported TFMs | net48 / net8 | .NET 10 and later only |
| Persistence | RGF (XML) / BinaryFormatter | reogrid-json (interoperable with the Web edition) |
It handles 1,048,576 rows × 16,384 columns at practical speed.
A UI-independent core
Workbook and Worksheet do not depend on any control. You can use them directly from
a server or a batch process, without ever creating a form.
using unvell.ReoGrid.Core;
var workbook = new Workbook();
var sheet = workbook.AddWorksheet("Sheet1");
sheet.SetNumber(0, 0, 1200);
sheet.SetNumber(0, 1, 3);
sheet.SetFormula(0, 2, "A1*B1"); // 先頭の '=' は付けない
Console.WriteLine(sheet.GetDisplayText(0, 2)); // 3600
XLSX read/write and PDF export are also UI-independent, so they run on Linux / macOS servers. See Running headless for details.
Distribution packages
One package per use case = one self-contained DLL. The core, the formula engine and XLSX / PDF I/O are all included, so no cross-package references are needed.
| Package | Target | TFM |
|---|---|---|
unvell.ReoGrid.One | WinForms | net10.0-windows |
unvell.ReoGrid.One.Wpf | WPF | net10.0-windows |
unvell.ReoGrid.One.Avalonia | Avalonia (Windows / Linux / macOS) | net10.0 |
unvell.ReoGrid.One.Core | No UI (server, batch) | net10.0 |
Only the Avalonia edition references the Avalonia package (the control has to bind to
the same Avalonia as the consuming application). The other three have no dependencies.
Migrating from V4
V5 deliberately breaks API compatibility. V4’s unvell.ReoGrid4 is frozen at version 4.x,
and V5 ships under a separate package ID — publishing a 5.x under the same ID would break
builds the moment the version was bumped.
Migration steps are covered in the V4 migration guide, and the API comparison in Differences from V4.