This is a preview of the V5 documentation. Content may still change until the official release on August 19, 2026.
V4 V5

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.

A sheet using formulas, number formats, conditional formatting, cell types and frozen panes

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.

V4V5 (ReoGrid One)
Memory per cell~150–200 B~16–23 B. Empty cells cost nothing
Cell valuesboxed object16-byte CellValue struct + shared string pool
Stylesmutable class + PlainStyleFlag bitmaskimmutable record StyleRecord + interning. Inheritance: cell ◁ row ◁ column ◁ sheet
Rendering and operationssome work still proportional to sheet dimensionsFully virtualized. Work is proportional to the visible range
Model and UIReoGridControl is the entry point; the model is tightly coupled to the UIWorkbook / Worksheet are UI-independent. Complete without a control
Platform branching#if WINFORM / WPFSeparated by class structure (swappable IGridGraphics implementations)
Supported TFMsnet48 / net8.NET 10 and later only
PersistenceRGF (XML) / BinaryFormatterreogrid-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.

PackageTargetTFM
unvell.ReoGrid.OneWinFormsnet10.0-windows
unvell.ReoGrid.One.WpfWPFnet10.0-windows
unvell.ReoGrid.One.AvaloniaAvalonia (Windows / Linux / macOS)net10.0
unvell.ReoGrid.One.CoreNo 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.

Was this article helpful?