Release v4.1.0
This is the major release of the version v4.1.0
Changes
- Package: NanoXLSX.Core
- Breaking change:
Worksheet.Cellsnow returnsIReadOnlyDictionary<string, Cell>instead ofDictionary<string, Cell>. All read operations (["A1"],ContainsKey,TryGetValue,foreach,Count,Keys,Values) work unchanged. Mutating properties of an existing cell in-place (e.g.Cells["A1"].Value = x) continues to work. Adding or removing cells throughCellsdirectly (e.g.Cells.Add(...),Cells.Remove(...),Cells["A1"] = new Cell(...)) is no longer possible; useWorksheet.AddCell(...)andWorksheet.RemoveCell(...)instead. - Replaced internal cell storage with an integer-keyed dictionary (
(column, row)), eliminating per-cell address string allocation on everyAddCellcall and reducing memory overhead for large workbooks. - Added
Worksheet.CellValuesproperty (IEnumerable<Cell>): allocation-free enumeration over all cells, preferred for hot iteration paths.
- Breaking change:
- Package: NanoXLSX.Writer
- Optimized writer performance (memory consumption, save time)
- Updated internal worksheet iteration to use
Worksheet.CellValues, eliminating per-cell string allocation during save.
Note: Direct manipulation of the cell dictionary through Worksheet.Cells (e.g. Cells.Add(...), Cells.Remove(...), Cells["A1"] = new Cell(...)) was never an intended or documented API. Doing so bypassed address validation, style normalization and internal bookkeeping performed by AddCell and RemoveCell, and could silently produce invalid workbooks. The change to IReadOnlyDictionary makes this boundary explicit.
Content
-
The release libraries (DLLs) for .NET 4.5 and .NET Standard 2.0
- PicoXLSX (meta package)
- NanoXLSX.Core
- NanoXLSX.Writer
- NanoXLSX.Formatting
-
The debug libraries and XML documentation (DLLs) for .NET 4.5 and .NET Standard 2.0
- PicoXLSX (meta package)
- NanoXLSX.Core
- NanoXLSX.Writer
- NanoXLSX.Formatting
The NuGet packages can be found at:
- https://www.nuget.org/packages/PicoXLSX (Meta package; This is what most users will need)
- https://www.nuget.org/packages/NanoXLSX.Core
- https://www.nuget.org/packages/NanoXLSX.Writer
- https://www.nuget.org/packages/NanoXLSX.Formatting