This is the major release of the version v3.0.0
Changes
Modularization
- Split the monolithic NanoXLSX library into separate NuGet packages: NanoXLSX.Core, NanoXLSX.Reader, NanoXLSX.Writer and the meta-package NanoXLSX
- Introduced a plugin architecture for Reader and Writer modules, allowing custom implementations
- Added external module NanoXLSX.Formatting for in-line cell formatting (rich text), bundled with the meta-package
- The methods
Workbook.Load(...)andWorkbook.LoadAsync(...)were moved toWorkbookReaderin theNanoXLSX.Extensionsnamespace (provided by NanoXLSX.Reader) - Internal reader classes moved from
NanoXLSX.LowLeveltoNanoXLSX.Internal.Readers
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
Reader
ImportOptionsrenamed toReaderOptionsEnforceValidColumnDimensionsandEnforceValidRowDimensionscombined intoEnforceStrictValidation- Removed
ImportOptions.GlobalType.AllSingleToDecimal(useReaderOptions.GlobalType.AllNumbersToDecimal) - Newline handling normalized: all newlines in string cell values are now
\nonly
Utils
- General
Utilsclass split intoDataUtils,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 v2.x to v3.0.0.
Content
-
The release libraries (DLLs) for .NET 4.5 and .NET Standard 2.0
- NanoXLSX (meta package)
- NanoXLSX.Core
- NanoXLSX.Writer
- NanoXLSX.Reader
- NanoXLSX.Formatting
-
The debug libraries and XML documentation (DLLs) for .NET 4.5 and .NET Standard 2.0
- NanoXLSX (meta package)
- NanoXLSX.Core
- NanoXLSX.Writer
- NanoXLSX.Reader
- NanoXLSX.Formatting
The NuGet packages can be found at: