Release Notes

Update history for ReoGrid One (V5) and ReoGrid v4.

ReoGrid One (V5)

5.0.0 — 2026-08-19

The first stable release of V5 (ReoGrid One). There is no backward compatibility with V4 (Differences from V4).

Highlights

AreaWhat it brings
MemoryFully virtualized. About 16-23 B per cell; empty cells cost nothing
StylesFour-level inheritance (Cell ◁ Row ◁ Column ◁ Sheet); identical formatting is shared automatically
Formulas122 functions, dependency recalculation, cross-sheet references, defined names
Number formatsExcel format codes (sections, conditions, colors)
Cell typesSix (checkbox / dropdown / progress / button / hyperlink / sparkline)
Conditional formattingThe full OOXML set, icon sets included
DisplayHigh DPI, freeze panes, zoom; only the visible area is drawn
EditingAn in-cell editor with IME and formula highlighting
DataSorting (multi-key), filtering (value lists and conditions), auto-fill, outlines, undo
I/Oreogrid-json, CSV, XLSX (streaming), PDF
PrintingA UI-independent pagination engine shared by PDF, WinForms and WPF
PlatformsWinForms / WPF / Avalonia, plus headless

Packages

unvell.ReoGrid.One / .One.Wpf / .One.Avalonia / .One.Core (Installation)


Planned

Features not implemented today. Each will get its documentation page when it ships.

Under consideration

FeatureNotes
Cell commentsTied to XLSX comment I/O
ChartsNeeds a floating-object foundation first
Shapes and text boxesImages are already supported
Data bindingTo be redesigned around the headless core
Data validationPossibly going as far as Excel-compatible list and range rules
Text search
More cell typesDatePicker / RadioButton / NumberInput / image types

Known limitations

AreaLimitation
FormulasDynamic arrays (spill) — FILTER SORT UNIQUE SEQUENCE LET LAMBDA
FormulasLocalized function names; JIS / ASC / DBCS / PHONETIC
Number formatsFractions, scientific notation, Japanese era dates
PrintingPrint titles, headers and footers (page numbers)
PersistenceFreeze panes, zoom, per-sheet print settings
XLSXAuto-filter (<autoFilter>), expanding shared formulas
UndoOutline operations
AvaloniaPrinting (use PDF export instead)

Each limitation is also noted on the page that covers the feature.


Licensing

Keys already issued for V4 work in V5 unchanged — no re-issue needed (Applying a License Key).

ReoGrid v4
Latest
v4.5.1
July 9, 2026
  • New
    Added a selectable worksheet load strategy for multi-sheet XLSX files, set via ReoGridControl.WorksheetLoadStrategy (or ExcelFileFormatArgument.WorksheetLoadStrategy per load).
    • LoadAll (default): every sheet is parsed during Load — the conventional behavior.
    • DelayLoad: only the active sheet is parsed up front; the rest are loaded on first access, such as when their tab is clicked.
    • BackgroundDelayLoad: like DelayLoad, but a background task also preloads the remaining sheets, so switching tabs usually finds them already loaded.
  • Change
    Multi-sheet XLSX files load eagerly by default again. The implicit per-sheet lazy loading added in v4.5.0 could briefly freeze the UI when a large sheet’s tab was clicked, so it is now opt-in through WorksheetLoadStrategy.DelayLoad / BackgroundDelayLoad. The default LoadAll parses every sheet during Load, as in v4.4 and earlier.
  • Fix
    Rendering: fixed a rare crash while drawing when the visible area grew by a row or column mid-render.
  • Fix
    Excel import: fixed a crash when using delayed sheet loading from a MemoryStream that the caller disposed before a pending sheet was loaded — the file bytes are now retained until loading completes.
Previous Releases

v4.5.0

June 12, 2026
  • Note
    A license key is now required. From v4.5 onward, you must set a valid license key with SetLicense(string) before use. If no key is set, a gray overlay covers the entire grid and mouse/keyboard input, cell editing, and printing are blocked. When upgrading from v4.4 or earlier, be sure to call SetLicense(string) before using the grid.
    • License keys are tamper-protected with a digital signature.
    • License keys are available from the customer portal (https://portal.unvell.com/).
  • New
    Added 47 Excel-compatible formula functions, spanning logical, lookup, date, statistical, and text categories.
    • Logical / conditional: IFERROR / IFS / SUMIFS / COUNTIFS / AVERAGEIFS
    • Lookup / reference: INDEX / OFFSET / CHOOSE
    • Math / statistics: ROUNDUP / ROUNDDOWN / INT / TRUNC / SQRT / SIGN / PI / SUMPRODUCT / RANK / LARGE / SMALL / MEDIAN / STDEV / STDEVP / VAR / VARP
    • Date / time: DATE / DATEVALUE / TIMEVALUE / WEEKDAY / WEEKNUM / EDATE / EOMONTH / NETWORKDAYS / WORKDAY
    • Text: TEXT / SUBSTITUTE / REPLACE / CONCAT / CONCATENATE / TEXTJOIN
    • Information: ISTEXT / ISNONTEXT / ISNA / ISLOGICAL / ISEVEN / ISODD
    • Double-byte (CJK): JIS / ASC / DBCS, plus a simplified PHONETIC
  • New
    Added point-mode formula editing. While editing a formula, click a cell to insert or replace a cell reference at the cursor without leaving edit mode. Drag to extend it to a range, and use the arrow keys to move the active reference — the same feel as Excel and Google Sheets. Every reference in the formula is color-coded and highlighted.
    • Drag a highlight border edge to move the reference, or drag a corner to resize it.
  • New
    Added reading and writing of XLSX outlines (grouping). Row and column outline levels and collapsed state are now exchanged with Excel files.
  • New
    Exposed LazyLoadDataSource, with an AddDataSource(source, mode) overload that infers the range automatically from the record and column counts.
  • Improvement
    Substantially improved XLSX loading performance and memory usage.
    • Introduced an in-house streaming parser that avoids generating intermediate data during loading.
    • Workbooks with many sheets now parse only the open sheet up front and materialize the others on first access.
    • Reduced memory usage by about 37% on a 10-million-cell workbook (3.9 GB → 2.5 GB). With viewport-aware style evaluation, memory dropped a further ~40% and load time ~60%.
    • Sped up cell loading by about 50% (number-format pattern caching, optimized reference resolution, and more).
  • Improvement
    Strengthened XLSX import compatibility.
    • Support for multi-section / conditional custom number formats.
    • Fixed theme colors being loaded with light/dark swapped, so cells now display the correct color.
    • Correct interpretation of rich-text formatting (whether bold is on) and splitting into separate lines at each line break.
    • Display of images anchored to a cell position (such as stamps) and the preview image of embedded OLE objects.
    • Inline-string cells are now loaded as text.
  • New
    Added Worksheet.ClearStyleCache(range?) for releasing memory — after a large bulk load you can release cached styles.
  • New
    Added Worksheet.RowOutlineButtonLocation / ColumnOutlineButtonLocation to set the outline-button position independently for rows and columns (the existing OutlineButtonLocation sets both at once).
  • Fix
    Formulas: fixed a rare crash when clicking a cell partway through typing a function name.
  • Fix
    Styles: fixed an issue where changing one of several cells that share a style also changed the others.
  • Fix
    Styles / fonts: fixed an issue where cells that inherit a font changed size or weight when an edit was committed or on redraw.
  • Fix
    Printing: fixed an empty sheet being split across two pages, an exception when dragging a page break, and an extra one-cell page for rows/columns that fit exactly at the page edge.
  • Fix
    Excel import: fixed split windows being mistaken for frozen panes, which crashed the entire sheet load.
  • Fix
    Rich text (WinForms): fixed text being clipped when auto-fit left the row height too short.
  • Fix
    Fixed console/shell output being disrupted after CSV export.

v4.4.0

April 24, 2026
  • Improvement
    Faster rendering: cached cell style and border-drawing resources to speed up screen redraws.
  • Improvement
    Faster font handling: optimized font name lookup and font object retrieval for smoother behavior when displaying large numbers of cells.
  • Improvement
    Faster formula recalculation: redesigned the dependency-tracking algorithm, achieving roughly 2.7× speedup in cases where a single cell is referenced by many other cells.
  • Improvement
    Faster sorting: significantly improved sort performance on large datasets by suspending unnecessary processing during the sort.
  • Improvement
    Faster conditional formatting: optimized evaluation timing — instead of recalculating on every cell edit, conditional formats are now processed in batch at render time.
  • Improvement
    Faster bulk data operations: improved performance of range data assignment, paste, and undo operations by suppressing screen updates and event firing during batch processing.
  • Fix
    Formulas: expressions with a leading plus sign such as =+D25-F8-F14 now behave the same as in Excel.
  • Fix
    Formulas: references with parentheses or whitespace in sheet names (e.g., 'BS(USD)'!B3, 'My Sheet'!A1) are now handled correctly.
  • Fix
    Sorting: formulas now correctly move along with their rows during sort (matching Excel behavior).
  • Fix
    Conditional formatting: fixed an issue where cell styles were not properly cleared when a conditional format was removed.
  • Change
    Removed the ConditionalStyleApplyCells property and the ConditionalStyleApplyCellCollection class.
  • New
    Added Worksheet.HasConditionalStyle(row, col) / HasConditionalStyle(CellPosition) to check whether a conditional style is applied to a given cell.
  • New
    Added the Cell.HasConditionalStyles property — a lightweight check that does not require materializing the style list.

v4.3.14

March 25, 2026
  • Fix
    Fixed mouse scroll behavior in NormalViewportController, correctly enforcing horizontal and vertical scroll limits.
  • Fix
    Fixed a background color application issue in ControlShareControlStyle changes are now reflected immediately.
  • New
    Added a StyleChanged event to ControlAppearanceStyle to notify when a style color is changed.

v4.3.12

February 18, 2026
  • Fix
    Fixed slow Excel export when cell fonts were specified.
  • Fix
    Fixed RGF save/load so that number-format arguments specified as a string pattern (e.g., 0.0) are preserved correctly.

v4.3.11

February 12, 2026
  • Fix
    Fixed a regression introduced in v4.3.10 where the borders of the last row and last column were not drawn.
  • Fix
    Fixed an issue in multi-page printing where cells in the last row and last column were not printed on the final page.

v4.3.10

February 7, 2026
  • New
    Exposed DoAction on Worksheet.
  • Fix
    Fixed scrollbar position during synchronization.
  • Fix
    Fixed cell overflow during printing.
  • Fix
    Fixed font styles in Excel export.

v4.3.8

December 25, 2025
  • Fix
    Fixed an issue in WPF rich text where font keys were not detected; added a font lookup fallback.
  • Fix
    Fixed rendering of header dropdown buttons.
  • New
    Added the IsSuspendingScrollToCell property to temporarily disable scrolling to a cell.
  • Improvement
    Improved row/column select-all behavior, resolving an issue where the view was forcibly scrolled to the last cell under certain conditions.

v4.3.4

December 3, 2025
  • Fix
    Fixed an issue in the WPF version where RichText was not rendered correctly under certain conditions.
  • New
    Added Undo / Redo support for built-in cell types.
  • Fix
    Fixed an issue where row header background colors were not displayed correctly under certain conditions.
  • Fix
    Fixed guideline and selection display for hidden cells.

v4.3.3

November 13, 2025
  • Fix
    Fixed an issue where some hidden columns could not be re-shown after loading an RGF file.
  • Fix
    Fixed an issue where cell formulas were not recalculated under certain conditions.
  • Fix
    Fixed an issue where SheetTab was not drawn correctly after rearranging worksheets.
  • Fix
    Fixed an issue where DropdownCell could not be copied.
  • Fix
    Fixed an issue where the scrollbar position was not displayed correctly under certain conditions when freezing cells.

v4.3.2

November 6, 2025
  • Fix
    Fixed an exception that occurred with no-argument formulas (e.g., ABS(), COS()).
  • Fix
    Fixed issues with text wrapping (line breaks) inside cells.
  • New
    Added text wrapping support for header cells.
  • Fix
    Fixed an issue where outline (group) level button text was not drawn correctly when zooming.
  • Fix
    Fixed scaling issues in rich text rendering.
  • Fix
    Fixed an issue where column widths were not retrieved correctly when loading Excel files.
  • Fix
    Fixed a rare error that occurred in header cells.
  • Fix
    Fixed an issue in the WPF version where sheet tabs were not displayed correctly.
  • New
    Added the SheetTabFont property.
  • New
    Added the Worksheet.Tag property.
  • Fix
    Fixed display issues when moving sheet tabs by drag and drop.
  • Fix
    Fixed an issue where the Dotted border style was changed to Dashed when exported to Excel.
  • Fix
    Fixed an issue where cells without an explicit font size changed from 10.5 to 12.5 when exported to Excel.

v4.3.0

October 6, 2025
  • Change
    Renamed IsValidAddress to IsValidAddressFormat for clearer naming.
  • New
    Added Worksheet.IsValidAddress for stricter address string validation.
  • New
    Added IsValidCellAddress and IsValidRangeAddress to safely generate coordinate objects while validating address validity, with improved performance.
  • Improvement
    Improved robustness by using IsValidCellAddress / IsValidRangeAddress in ReoGrid internal processing.
  • Fix
    Fixed an issue where cells were not loaded correctly when zooming during Lazy Loading.
  • Improvement
    Enhanced the ADDRESS function to dynamically generate addresses from referenced cell values.
  • Improvement
    Enhanced the INDIRECT function for more accurate cell reference management and proper interpretation of lowercase addresses.
  • Fix
    Fixed an issue where row number text was not scaled during zoom operations.
  • Fix
    Fixed an issue where Excel files containing certain RichFormatText became corrupted when loaded and saved.
  • Change
    Changed the target framework from net8.0-windows7.0 to net8.0-windows, supporting more general .NET 8 Windows environments.
  • Improvement
    Improved recalculation after worksheet cloning.
    • Resolved cases where calculation results became inconsistent or outdated immediately after cloning sheets containing shared formulas and dependency chains.
    • Reorganized reference remapping and recalculation order during clone creation to guarantee an immediately consistent display.
    • In most cases, additional Recalculate calls in existing code are no longer necessary. Explicit recalculation is still possible when needed.
  • Improvement
    Improved reliability of border (Border) Excel output.
    • Normalized output to avoid writing empty/transparent borders as unnecessary "thin" styles.
    • Fixed mapping for Dotted / DashDot / DashDotDot / medium* styles to prevent shape corruption during re-import.
    • Resolved an issue where unnecessary opposite-side lines reappeared in corner cells when the "outside only" setting was applied.
  • Note
    If you were relying on inner lines that were unintentionally added after setting "outside only" in previous versions, you will need to set them again explicitly.
  • Note
    Code that called Recalculate immediately after cloning may now be redundant (it can be kept for performance-tuning purposes).
  • Improvement
    Excel compatibility: 0 can now be interpreted as FALSE. In functions such as IF, 0 evaluates as FALSE and any non-zero number as TRUE.
  • New
    Implemented lookup functions.
    • VLOOKUP: supports exact and approximate matching with numeric and string keys. The fourth argument accepts TRUE/FALSE as well as 1/0.
    • HLOOKUP: supports horizontal lookup.
    • MATCH / XMATCH: return the position of a match. Supports direction options (0, 1, -1).
    • XLOOKUP: provides flexible lookup with if_not_found, match modes, and search modes.
  • Improvement
    Operator improvements: the multiplication operator (*) can now convert numeric strings to numbers (e.g., "10"*2 → 20).
  • Improvement
    Error handling improvements: division by zero is now processed as InvalidValue (the Excel-compatible #DIV/0!). FormulaStatus is now InvalidValue instead of Normal in this case.
  • Note
    When using approximate matching, the data must be sorted in ascending or descending order, the same as in Excel.
  • Improvement
    Improved stability.
  • Improvement
    Improved rendering performance.
  • New
    Added support for .NET 8 and .NET Framework 4.8.
  • Fix
    Fixed an issue where red text formatting was not displayed correctly.

v4.0.0

Major Release
  • New
    Lazy Loading — ultra-fast data loading mode.
  • New
    Multi-row header support.
  • Improvement
    Significantly enhanced WPF version.
  • New
    Added the data source mechanism.
  • Improvement
    Enhanced DropdownListCell.
  • New
    Added ComboListCell (with auto-completion support).
  • New
    Added support for Excel custom format patterns.
  • Improvement
    Enhanced outlines.
  • New
    Added customizable condition filters.
  • New
    Added conditional styles.
  • New
    Added string search functionality.
  • Improvement
    Enhanced cell locking.
  • New
    Added input validation.
  • New
    Worksheet data now supports column 0 and row 0.
  • Improvement
    Further rendering speed improvements.
  • Improvement
    Floating-point calculation precision corrections.
  • New
    Automated testing support via WinAppDriver.
  • Improvement
    Additional formula functions supported.

For an overview of the major new features in ReoGrid v4:

What's New page