This is the major release of the version v4.0.0
Changes
Modularization
- Changed the code base of PicoXLSX to the now shared NanoXLSX base (namespace changed)
- Split the monolithic PicoXLSX library into separate NuGet packages: NanoXLSX.Core, NanoXLSX.Writer and the meta-package PicoXLSX
- Option to upgrade PicoXLSX to NanoXLSX (reader support) by adding the NuGet package NanoXLSX.Reader
- Introduced a plugin architecture for the Writer module, allowing custom implementations
- Added external module NanoXLSX.Formatting for in-line cell formatting (rich text), bundled with the meta-package
Color System
- Introduced new
Colorclass (namespaceNanoXLSX.Colors) supporting RGB, ARGB, indexed, theme, system and auto colors - Changed
Font.ColorValuefromstringtoColor - Removed
Font.ColorThemeproperty (value now handled byFont.ColorValuewhen type isThemeColor) - Changed
Fill.BackgroundColorandFill.ForegroundColorfromstringtoColor - Removed
Fill.IndexedColorproperty (value now part ofColorclass) - Added implicit conversions for colors from strings (ARGB) and integers (indexed color)
Font Redesign
- Changed
Font.Familyfromstringto enumFont.FontFamilyValue - Changed
Font.Charsetfromstringto enumFont.CharsetValue - Changed
Font.VerticalAlignfromFont.VerticalAlignValuetoFont.VerticalTextAlignValue - Added
Baselineas value forVerticalTextAlignValue - Added font properties:
Font.Outline,Font.Shadow,Font.CondenseandFont.Extend - Renamed font constants to PascalCase (e.g.
DEFAULT_FONT_NAMEtoDefaultFontName)
Fill Redesign
- Complete overhaul of the
Fillclass for flexible color definitions including tint support - Changed fill color properties to use the new
Colorclass - Added implicit operators for
Fillcreation from strings and integers - Renamed fill constants and enum values to PascalCase
Worksheet and Workbook
Worksheet.SelectedCellschanged fromRangetoList<Range>with automatic range recalculationWorksheet.SheetProtectionPasswordchanged fromstringtoIPasswordinterface (default:LegacyPassword)Addressstruct properties (Row,Column,Type) are now read-only (immutable)Rangestruct properties (StartAddress,EndAddress) are now read-only (immutable)- Added explicit cast operator for
Addressfrom string and implicit cast operator forRangefrom string - Added
AddCellRangeoverloads acceptingRangeobjects - Removed deprecated methods:
Workbook.AddStyle,Workbook.AddStyleComponent,Workbook.RemoveStyle Workbook.GetMruColors()now returnsIReadOnlyList<Color>- Empty
Workbook.WorkbookMetadatanow returns a default object instead of null
Naming Conventions (Breaking)
- All enum values renamed from camelCase to PascalCase across:
Cell.CellType,Worksheet.SheetProtectionValue,Worksheet.WorksheetPane,Worksheet.SheetViewType,Border.StyleValue,Fill.FillType,Fill.PatternValue,CellXf.HorizontalAlignValue,CellXf.TextBreakValue,CellXf.TextDirectionValue,CellXf.VerticalAlignValue,NumberFormat.FormatRange,NumberFormat.FormatNumber,Font.SchemeValue,Font.VerticalTextAlignValue,Font.UnderlineValue - All public constants renamed from UPPER_SNAKE_CASE to PascalCase across
Worksheet,Font,Border,Fill,CellXf,NumberFormat
Utils
- Several util methods split into specific classes
DataUtils,ParserUtilsandValidatorsin namespaceNanoXLSX.Utils Utils.GeneratePasswordHashmoved toLegacyPassword.GenerateLegacyPasswordHash- Constants moved to
NanoXLSX.Utils.Constants
Misc
- Introduced
Themeclass for workbook theme representation - All (s)RGB values are automatically validated and cast to uppercase
- Improved Cell constructor behavior:
EMPTYtype discards any passed value - Added
ThemeColorconstructor by index - Various bug fixes and optimizations from RC releases
See the Migration Guide for detailed instructions on migrating from v3.x to v4.0.0.
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