August 25, 2026
UNVELL Inc. released ReoGrid V5, the next generation of its spreadsheet component for .NET, on August 25, 2026.
V5 is a next generation rebuilt from the core rather than an extension of V4. Full virtualization sits on line one of the design instead of arriving later as an optimization, and the data structures and renderer were rebuilt around it. The goal was to make data at the scale of a million rows something you simply work with.
■ A million rows, first screen in under a millisecond
What sets the workload is the range you can see, not the volume of data behind it. Reading one screen of cells takes tens of microseconds, and the memory newly allocated to do it is zero bytes. Out of the 16.7 milliseconds a frame gets at 60fps, reading spends under 0.1%. Ten rows or a million rows, the sheet feels the same in your hands.
■ Why it is fast, part 1: a small cell drives the cost of memory management to the floor
Speed starts with carrying a lighter load. V5 adopts a row-chunked, column-oriented store with adaptive blocks, packing cell values as a 16-byte value type while interning styles and strings. It holds exactly the cells that carry values, so ten million cells occupy about 155 MB. Running V4 on the same machine and runtime for comparison, the same ten million cells cost 16.4 bytes per cell (156 MB) under V5 against 298.2 bytes per cell (2.78 GB) under the previous design — one eighteenth of the memory. At a million rows by twenty columns, the previous design needs 5.54 GB where V5 uses 312 MB.
■ Why it is fast, part 2: the visible window sets the workload, not the sheet
Scrolling produces zero bytes of garbage, so the collector stays quiet. Fling the scrollbar to the far end and the grid tracks your finger the whole way. Going from ten rows to a million leaves the per-frame workload identical.
■ Why it is fast, part 3: the same principle, all the way down
Conditional formatting evaluates only visible cells; a checkbox column a million rows tall is one entry; a million banded rows are one object; whole-row and whole-column formatting costs track lines rather than cells; find and replace visits only cells that carry values; XLSX import streams. Every full-sheet scan was redesigned one at a time — and it takes all of them together to make a million rows feel ordinary.
■ Features and completeness
A formula engine with around 85 functions including cross-sheet references and defined names; an Excel-format-code number formatter; the full OOXML conditional formatting set including icon sets; undo/redo, multi-key sorting, auto-filter, data validation, sheet protection, cell notes, repeated print titles and headers/footers. I/O covers XLSX, PDF (with Japanese fonts embedded, so output stays searchable and copyable), JSON and CSV — all with zero external dependencies. The core ships with 940 automated tests.
■ Side by side with the other libraries
We measured V5 against the main open-source .NET spreadsheet libraries on the same machine, the same runtime and the same input file. Reading a 200,000-row by 10-column xlsx, V5 takes 1.9 s and retains 129 MB — the lowest on both counts among the libraries that hold an addressable cell model (NPOI 4.3 s / 631 MB, ClosedXML 3.6 s / 165 MB, EPPlus 4.5 1.8 s / 168 MB, NanoXLSX 11.8 s / 281 MB). Across 10,000 random cell reads after loading, V5 is again fastest at 0.3 µs per read. Measured on AMD Ryzen 9 9900X / Windows 11 / .NET 10.0.10 / Workstation GC, median of 3 runs. Commercial grid products are absent because their licence agreements typically forbid publishing benchmark results.
■ Platforms and licensing
WinForms, WPF and Avalonia are supported, with the Avalonia build running the same code on Windows, macOS and Linux; a headless, UI-independent build is also available. Each package is a single DLL with zero NuGet dependencies, targeting .NET 10 or later. Licensing is a perpetual licence bought once plus an optional annual renewal, covering every version and platform with one key. Whatever the state of that renewal, the binaries you hold keep running forever.
■ For customers on V4
Because V5 breaks API compatibility, V4 sales and maintenance continue exactly as before. V4 and V5 ship as separate NuGet package IDs, so raising a version leaves an existing build passing as it did, and one licence continues to cover both.
See the blog post "ReoGrid V5 Released — Full Virtualization on Line One, Making a Million Rows Ordinary" for details.