Why this post exists
We’ve been getting the same question from existing ReoGrid V3 users:
“Can I just swap the V3 DLL for the V4 DLL and rebuild?”
Short answer: no, but the differences are mechanical. V4 introduced a handful of class renames, removed a few exception types, and reorganized the data-binding and filtering APIs. There’s no [Obsolete] shim layer — old names are gone, not deprecated — but most projects can be migrated with find-and-replace plus a few structural fixes.
We’ve published a full migration guide in the docs:
This blog post is the 90-second summary.
What breaks at compile time
Seven categories of rename / removal that your V3 code will hit:
- Action base class —
BaseWorksheetAction→WorksheetAction - Outline types —
ReoGridOutline→BaseOutline,IReoGridOutline→IOutline - Header type —
ReoGridHeader→WorksheetHeader - Dropdown hierarchy —
DropdownListCellnow extends a newDropdownListBaseCell - Formula exceptions removed —
FormulaEvalutionException,FormulaNoNameException,FormulaParameterMismatchException,FormulaTypeMismatchExceptionare gone; checkCell.FormulaStatusinstead - Validation rename —
RangePosition.IsValidAddress→IsValidAddressFormat(V4.3.0) ConditionalStyleApplyCellsremoved — useCell.HasConditionalStylesorWorksheet.HasConditionalStyle(...)(V4.4)
The core API surface — Workbook, Worksheet, Cell, RangePosition, CellPosition, WorksheetRangeStyle — is unchanged.
What changes at runtime (compiles, but behaves differently)
These are Excel-alignment improvements. Most users will want the new behavior, but they’re worth being aware of:
- Sort moves formulas with rows. V3 sorted only the data; V4 keeps formulas attached to their row (Excel-compatible).
- Conditional styles evaluated at render time instead of on every cell edit — much faster on large sheets.
- Excel-compatible formula parsing. Unary plus (
=+D25-...), quoted sheet names with parentheses ('BS(USD)'!B3),IF(0, ...)evaluating the FALSE branch, and=A1/0returning#DIV/0!all behave like Excel now. - String multiplication coercion.
="10"*2returns20instead of erroring. - VLOOKUP / HLOOKUP / MATCH / XMATCH / XLOOKUP are implemented.
New APIs worth adopting
Once your V3 code compiles cleanly under V4, these are the V4-only features most worth integrating:
- Lazy loading for million-row datasets via
Worksheet.AddDataSource(...)withDataSourceLoadMode.LazyLoading - Multi-row column headers via
Worksheet.ExtensionColumnHeader - Conditional styles via
unvell.ReoGrid.ConditionalStyle.Rule - Conditional filters via
unvell.ReoGrid.Data.ConditionFilter.ConditionalDataFilter - Three-level cell locking via the new
CellLockenum - Workbook-wide highlighted text search via
HighlightTextSearchSession - Excel-compatible custom number formats (e.g.
"#,##0;[Red]-#,##0") - WinAppDriver UI automation via
ReoGridControl.EnableUIAutomation = true
See the What’s New in V4 page for the full feature catalog.
Distribution and licensing
V4 is currently delivered as DLLs through the customer portal after purchase. (NuGet packages will be released later.) The root namespace unvell.ReoGrid and the assembly name are unchanged, so swapping the DLL reference is the only build-configuration change required. V4 targets net48 and net8.0-windows.
V4 is offered as Professional (up to 3 devices, 1 month support) and Enterprise (unlimited devices, 3 months support). See Pricing for current rates.
V3 remains available as MIT-licensed open source on GitHub.
Read the full guide
The migration guide in our documentation has all the details — diff-style code samples for each rename, a step-by-step checklist, and notes on edge cases:
➡️ Migrate from V3 to V4 — full guide
If you hit a migration issue not covered there — especially around custom cell types, custom actions, or large data binding flows — please contact us. We can advise on the best V4 equivalents for your V3 patterns.