Skip to content

Releases: rabanti-github/NanoXLSX

Release v3.0.0

01 Mar 00:21

Choose a tag to compare

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(...) and Workbook.LoadAsync(...) were moved to WorkbookReader in the NanoXLSX.Extensions namespace (provided by NanoXLSX.Reader)
  • Internal reader classes moved from NanoXLSX.LowLevel to NanoXLSX.Internal.Readers

Color System

  • Introduced new Color class (namespace NanoXLSX.Colors) supporting RGB, ARGB, indexed, theme, system and auto colors
  • Changed Font.ColorValue from string to Color
  • Removed Font.ColorTheme property (value now handled by Font.ColorValue when type is ThemeColor)
  • Changed Fill.BackgroundColor and Fill.ForegroundColor from string to Color
  • Removed Fill.IndexedColor property (value now part of Color class)
  • Added implicit conversions for colors from strings (ARGB) and integers (indexed color)

Font Redesign

  • Changed Font.Family from string to enum Font.FontFamilyValue
  • Changed Font.Charset from string to enum Font.CharsetValue
  • Changed Font.VerticalAlign from Font.VerticalAlignValue to Font.VerticalTextAlignValue
  • Added Baseline as value for VerticalTextAlignValue
  • Added font properties: Font.Outline, Font.Shadow, Font.Condense and Font.Extend
  • Renamed font constants to PascalCase (e.g. DEFAULT_FONT_NAME to DefaultFontName)

Fill Redesign

  • Complete overhaul of the Fill class for flexible color definitions including tint support
  • Changed fill color properties to use the new Color class
  • Added implicit operators for Fill creation from strings and integers
  • Renamed fill constants and enum values to PascalCase

Worksheet and Workbook

  • Worksheet.SelectedCells changed from Range to List<Range> with automatic range recalculation
  • Worksheet.SheetProtectionPassword changed from string to IPassword interface (default: LegacyPassword)
  • Address struct properties (Row, Column, Type) are now read-only (immutable)
  • Range struct properties (StartAddress, EndAddress) are now read-only (immutable)
  • Added explicit cast operator for Address from string and implicit cast operator for Range from string
  • Added AddCellRange overloads accepting Range objects
  • Removed deprecated methods: Workbook.AddStyle, Workbook.AddStyleComponent, Workbook.RemoveStyle
  • Workbook.GetMruColors() now returns IReadOnlyList<Color>
  • Empty Workbook.WorkbookMetadata now 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

  • ImportOptions renamed to ReaderOptions
  • EnforceValidColumnDimensions and EnforceValidRowDimensions combined into EnforceStrictValidation
  • Removed ImportOptions.GlobalType.AllSingleToDecimal (use ReaderOptions.GlobalType.AllNumbersToDecimal)
  • Newline handling normalized: all newlines in string cell values are now \n only

Utils

  • General Utils class split into DataUtils, ParserUtils and Validators in namespace NanoXLSX.Utils
  • Utils.GeneratePasswordHash moved to LegacyPassword.GenerateLegacyPasswordHash
  • Constants moved to NanoXLSX.Utils.Constants

Misc

  • Introduced Theme class for workbook theme representation
  • All (s)RGB values are automatically validated and cast to uppercase
  • Improved Cell constructor behavior: EMPTY type discards any passed value
  • Added ThemeColor constructor 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

Release v2.6.7

01 Oct 00:38

Choose a tag to compare

This is the release of the version v2.6.7

Changes

  • Fixed handling of worksheet protection (regression bug)
  • Code cleanup

Content

  • The release library (dll) for .NET 4.5 and .NET Standard 2.0
  • The debug library and XML documentation (dll) for .NET 4.5 and .NET Standard 2.0
  • The help file (chm)

The NuGet package can be found https://www.nuget.org/packages/NanoXLSX

Release v2.6.6

29 Sep 21:44

Choose a tag to compare

This is the release of the version v2.6.6

Changes

  • Fixed handling of worksheet protection (selecting locked or unlocked cells)
  • Added test case

Note: The default value of Style.CurrentCellXf.Locked is now true, to be consistent with Excel behavior. This change only affects worksheets with protection enabled and may require
explicit unlocking of cells that should remain editable

Content

  • The release library (dll) for .NET 4.5 and .NET Standard 2.0
  • The debug library and XML documentation (dll) for .NET 4.5 and .NET Standard 2.0
  • The help file (chm)

The NuGet package can be found https://www.nuget.org/packages/NanoXLSX

Release v2.6.5

13 Sep 00:21

Choose a tag to compare

This is the release of the version v2.6.5

Changes

  • Added import option to ignore invalid column widths or row heights. Concept provided by pokorny
  • Added test case

Content

  • The release library (dll) for .NET 4.5 and .NET Standard 2.0
  • The debug library and XML documentation (dll) for .NET 4.5 and .NET Standard 2.0
  • The help file (chm)

The NuGet package can be found https://www.nuget.org/packages/NanoXLSX

Release v2.6.4

18 Jul 23:40

Choose a tag to compare

This is the release of the version v2.6.4

Changes

  • Added support for in-line string values (non-formatted). Change provided by Misir
  • Added test case

Content

  • The release library (dll) for .NET 4.5 and .NET Standard 2.0
  • The debug library and XML documentation (dll) for .NET 4.5 and .NET Standard 2.0
  • The help file (chm)

The NuGet package can be found https://www.nuget.org/packages/NanoXLSX

Release v2.6.3

26 Apr 20:56

Choose a tag to compare

This is the release of the version v2.6.3

Changes

  • Fixed a bug that prevented adding new worksheets when a pane split was defined
  • Changed handling of reading workbooks, when docProps are missing (formal change)
  • Added test case

Content

  • The release library (dll) for .NET 4.5 and .NET Standard 2.0
  • The debug library and XML documentation (dll) for .NET 4.5 and .NET Standard 2.0
  • The help file (chm)

The NuGet package can be found https://www.nuget.org/packages/NanoXLSX

Release v2.6.2

24 Jan 21:54

Choose a tag to compare

This is the release of the version v2.6.2

Changes

  • Fixed a regression bug in the Cell function ConvertArray
  • Added test cases

Note: The color values of Border styles are handled identical on writing XLSX files, either if null or empty. The change of the reader behavior was to enforce the "What You Can Write Is What You Can Read" policy of the library (writing an empty string as color value should lead to an empty string on read).

Content

  • The release library (dll) for .NET 4.5 and .NET Standard 2.0
  • The debug library and XML documentation (dll) for .NET 4.5 and .NET Standard 2.0
  • The help file (chm)

The NuGet package can be found https://www.nuget.org/packages/NanoXLSX

v2.6.1

19 Jan 21:49

Choose a tag to compare

This is the release of the version v2.6.1

Changes

  • Fixed a bug on writing default column styles (not persisted in some cases)
  • Adapted style reader: When a workbook is loaded, not defined color values of Border styles are now empty strings (were null), as if a new style is created
  • Code maintenance

Note: The color values of Border styles are handled identical on writing XLSX files, either if null or empty. The change of the reader behavior was to enforce the "What You Can Write Is What You Can Read" policy of the library (writing an empty string as color value should lead to an empty string on read).

Content

  • The release library (dll) for .NET 4.5 and .NET Standard 2.0
  • The debug library and XML documentation (dll) for .NET 4.5 and .NET Standard 2.0
  • The help file (chm)

The NuGet package can be found https://www.nuget.org/packages/NanoXLSX

Release v2.6.0

12 Jan 00:31

Choose a tag to compare

This is the release of the version v2.6.0

Changes

  • Added InsertRow and InsertColumn functions. Functionality provided by Alexander Schlecht
  • Added FirstCewllByValue, FirstOrDefaultCell, CellsByValue functions. Functionality provided by Alexander Schlecht
  • Added ReplaceCellValue function. Functionality provided by Alexander Schlecht
  • Code maintenance

Content

  • The release library (dll) for .NET 4.5 and .NET Standard 2.0
  • The debug library and XML documentation (dll) for .NET 4.5 and .NET Standard 2.0
  • The help file (chm)

The NuGet package can be found https://www.nuget.org/packages/NanoXLSX

Release v2.5.2

24 Nov 01:54

Choose a tag to compare

This is the release of the version v2.5.2

Changes

  • Fixed a bug of the column address (letter) resolution. Column letters above 'Z' were resolved incorrectly
  • Changed async handing of the workbook reader, to avoid deadlocks. Change provided by Jarren Long
  • Simplified project structure (unified .Net 4.x and Standard). Change provided by Jarren Long
  • Added tests for column address resolution

Content

  • The release library (dll) for .NET 4.5 and .NET Standard 2.0
  • The debug library and XML documentation (dll) for .NET 4.5 and .NET Standard 2.0
  • The help file (chm)

The NuGet package can be found https://www.nuget.org/packages/NanoXLSX