Skip to content

Latest commit

 

History

History
698 lines (485 loc) · 27.6 KB

File metadata and controls

698 lines (485 loc) · 27.6 KB

Change Log

v3.0.0


Release Date: (28.02.2026) - Major Release (DMY)

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.

v3.0.0-rc.9


Release Date: 15.02.2026 (DMY)

  • Fixed a bug in the PlugInLoader

v3.0.0-rc.8


Release Date: 14.02.2026 (DMY)

  • Added external dependency NanoXLSX.Formatting as bundled part of NanoXLSX
  • Formal updates

v3.0.0-rc.7


Release Date: 22.01.2026 (DMY)

  • Added overloads in the Cell class, to call AddCellRange with a Range object
  • Added Constructor to create a ThemeColor by index
  • Added Baseline as Value for vertical alignments
  • Changed plug-in handling
  • Added test cases
  • Optimizing code

v3.0.0-rc.6


Release Date: 07.01.2026 (DMY)

  • Added Font properties: Font.Outline, Font.Shadow, Font.Condense and Font.Extend (optional font properties)
  • Added test cases

v3.0.0-rc.5


Release Date: 04.01.2026 (DMY)

  • Added explicit operator for Address to convert from string to Address (string can be cast to address explicitly)
  • Added implicit operator for Range to convert from string to Range (string can be cast to range implicitly)
  • Introduced new class Color to handle colors in the Fill class. This class contains several color representations (implementations of the IColor interface):
    • IndexedColor (representing indexed colors form index 0 to 65)
    • SrgbColor (RGB or ARGB value)
    • ThemeColor (Color, defined by theme elements)
    • SystemColor (Color, defined by system colors)
    • AutoColor (automatic color, no value / dummy class)
  • Changed the type of Font.ColorValue from string to Color (can be sRGB/ARGB, Indexed, Theme, System or Auto)
  • Removed the property Font.ColorTheme, since only relevant for theme colors. The value is now handled by Font.ColorValue, in case of a ThemeColor
  • Re-implementation of the Fill class to use the new Color class for color representation of the foreground and background colors (indexed property removed)
  • Removed the property Fill.IndexedColor, since only relevant for Indexed colors. The value is now handled by Fill.ForegroundColor or Fill.BackgroundColor, in case of a IndexedColor
  • Added implicit operator for Fill to create a fill color by a string (RGB or ARGB value)
  • Added implicit operator for Fill to create a fill color by an integer (indexed color value)
  • Changed internal handling of text cell values
  • Added static methods bool Comparators.IsZero(double) and `bool Comparators.IsZero(float)
  • Added double ParserUtils.ParseDouble(string) to parse doubles with invariant culture
  • Added void Validators.ValidateGenericColor(string, bool = false) to check generic color strings (RGB or ARGB)
  • Normalized interface named, containing 'PlugIn' to 'Plugin'
  • Added test cases

Note: Implicit address conversion from string to Address was not implemented, to avoid potential problems when comparing addresses (invalid strings could raise exceptions instead of returning false in the equals method). This does not apply to the Range struct

v3.0.0-rc.3 + v3.0.0-rc.4


Release Date(s): 02.12.2025 / 03.12.2025 (DMY)

  • Formal changes to enforce displaying target frameworks in NuGet meta package

Note: The version numbers of the dependencies NanoXLSX.Core, NanoXLSX.Reader and NanoXLSX.Writer have not changed with this release. There are also no functional changes

v3.0.0-rc.2


Release Date: 27.11.2025 (DMY)

  • Refactoring of several enums in NanoXLSX.Core, NanoXLSX.Reader and NanoXLSX.Writer from lowercase start to uppercase start for better consistency

v3.0.0-rc.1


Release Date: 25.11.2025 (DMY)

  • Initial release candidate of the NanoXLSX library split into three separate libraries:
    • NanoXLSX.Core
    • NanoXLSX.Reader
    • NanoXLSX.Writer

v2.6.7


Release Date: 01.10.2025 (DMY)

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

v2.6.6


Release Date: 29.09.2025 (DMY)

  • 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

v2.6.5


Release Date: 13.09.2025 (DMY)

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

v2.6.4


Release Date: 19.07.2025 (DMY)

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

v2.6.3


Release Date: 26.04.2025 (DMY)

  • 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

v2.6.2


Release Date: 24.01.2025 (DMY)

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

v2.6.1


Release Date: 19.01.2025 (DMY)

  • 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).

v2.6.0


Release Date: 12.01.2025 (DMY)

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

v2.5.2


Release Date: 24.11.2024 (DMY)

  • 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

v2.5.1


Release Date: 26.10.2024 (DMY)

  • Fixed a bug regarding the determination of the first data cell in an empty worksheet. Bug fix provided by Martin Stránský

v2.5.0


Release Date: 22.07.2024 (DMY)

  • Adapted handling of the font scheme in styles. The scheme is now determined automatically
  • Added column option to define a default column style
  • Added tests

v2.4.0


Release Date: 21.04.2024 (DMY)

  • Added handling to load workbooks from files asynchronously. Concept provided by John Leyva
  • Fixed a bug when loading a workbook asynchronously from a stream. Bug fix provided by John Leyva
  • Fixed a bug when the column auto-filter is a single cell address. Bug fix provided by pokorny
  • Fixed a bug regarding style enumeration when reading a workbook. Bug fix provided by Martin Stránský
  • Added new and adapted existing test cases

v2.3.3


Release Date: 24.02.2024 (DMY)

  • Fixed a bug in the GetFirstDataCellAddress function
  • Fixed test cases

v2.3.2


Release Date: 24.02.2024 (DMY)

  • Fixed a bug when reading min and max values in the GetLastDataColumnNumber function. Bug fix provided by pokorny
  • Code maintenance

v2.3.1


Release Date: 22.01.2024 (DMY)

  • Fixed a bug when reading fill styles. Bug fix provided by Marq Watkin
  • Fixed a bug regarding casting floats to integers, in the worksheet reader. Bug fix provided by wappenull
  • Removed broken debug code in tests
  • Code maintenance

v2.3.0


Release Date: 07.09.2023 (DMY)

  • Added worksheet option for zoom factors
  • Added worksheet option for view types (e.g. page break preview)
  • Added worksheet option to show or hide grid lines
  • Added worksheet option to show or hide columns and row headers
  • Added worksheet option to show or hide rulers in page layout view type

v2.2.0


Release Date: 23.04.2023 (DMY)

  • Added new import option to cast all single values into decimals. Feature implementation provided by Tim M. Madsen
  • Adapted hex color validation (clarified number of necessary characters)
  • Internal changes of build processes (Documentation generation is performed now by a GitHub Action)

v2.1.1


Release Date: 04.03.2023 (DMY)

  • Fixed a bug when a workbook contains charts instead of worksheets. Bug fix provided by Iivari Mokelainen
  • Minor code maintenance

v2.1.0


Release Date: 08.11.2022 (DMY)

  • Added a several methods in the Worksheet class to add multiple ranges of selected cells
  • Fixed a bug in the reader function to read worksheets with multiple ranges of selected cells
  • Fixed a bug in several readers to cope (internally) with bools, represented by numbers and textual expressions
  • Removed internal escaping of custom number format codes for now
  • Updated example in demo

Note: It seems that newer versions of Excel may store boolean attributes internally now as texts (true/false) and not anymore as numbers (1/0). This release adds compatibility to read this newer format but will currently store files still in the old format

Note 2: The incomplete internal escaping of custom number format codes was removed due to the potential high complexity. Escaping must be performed currently by hand, according to OOXML specs: Part 1 - Fundamentals And Markup Language Reference, Chapter 18.8.31

v2.0.4


Release Date: 04.10.2022 (DMY)

  • Fixed a bug in the reader function of dates and times on hosts with locales different than en-US (and others)
  • Added == and != operator overload on Address and Range struct
  • Code maintenance

v2.0.3


Release Date: 01.10.2022 (DMY)

  • Fixed a bug in the functions to write and read font values (styles)
  • Adapted tests according to specs
  • Updated documentation
  • Added some internal notes to prepare the development of the next mayor version

v2.0.2


Release Date: 29.09.2022 (DMY)

  • Fixed a bug in the functions to write and read custom number formats
  • Fixed behavior of empty cells and added re-evaluation if values are set by the Value property
  • Adapted and added further tests
  • Removed several obsolete files and fixed project links

Note:

  • When defining a custom number format, now the CustomFormatCode property must always be defined as well, since an empty value leads to an invalid Workbook
  • When a cell is now created (by constructor) with the type EMPTY, any passed value will be discarded in this cell

v2.0.1


Release Date: 10.09.2022 (DMY)

  • Fixed a bug when loading workbooks on hosts with locales different than en-US (and others)

v2.0.0


Release Date: 03.09.2022 - Major Release (DMY)

Workbook and Shortener

  • Added a list of MRU colors that can be defined in the Workbook class (methods AddMruColor, ClearMruColors)
  • Added an exposed property for the workbook protection password hash (will be filled when loading a workbook)
  • Added the method SetSelectedWorksheet by name in the Workbook class
  • Added two methods GetWorksheet by name or index in the Workbook class
  • Added the methods CopyWorksheetIntoThis and CopyWorksheetTo with several overloads in the Workbook class
  • Added the method RemoveWorksheet by index with the option of resetting the current worksheet, in the Workbook class
  • Added the method SetCurrentWorksheet by index in the Workbook class
  • Added the method SetSelectedWorksheet by name in the Workbook class
  • Added a Shortener-Class constructor with a workbook reference
  • The shortener methods Down and Right have now an option to keep row and column positions
  • Added two shortener methods Up and Left
  • Made several non-functional style assigning methods deprecated in the Workbook class (will be removed in future versions)

Worksheet

  • Added an exposed property for the worksheet protection password hash (will be filled when loading a workbook)
  • Added the methods GetFirstDataColumnNumber, GetFirstDataColumnNumber, GetFirstDataRowNumber, GetFirstRowNumber, GetLastDataColumnNumber, GetFirstCellAddress, GetFirstDataCellAddress, GetLastDataColumnNumber, GetLastDataRowNumber, GetLastRowNumber, GetLastCellAddress, GetLastCellAddress and GetLastDataCellAddress
  • Added the methods GetRow and GetColumns by address string or index
  • Added the method Copy to copy a worksheet (deep copy)
  • Added a constructor with only the worksheet name as parameter
  • Added and option in GoToNextColumn and GoToNextRow to either keep the current row or column
  • Added the methods RemoveRowHeight and RemoveAllowedActionOnSheetProtection
  • Renamed columnAddress and rowAddress to columnNumber and rowNumber in the AddNextCell, AddCellFormula and RemoveCell methods
  • Added several validations for worksheet data

Cells, Rows and Columns

  • In a Cell object, the address can now have reference modifiers ($)
  • The worksheet reference in the Cell constructor was removed. Assigning to a worksheet is now managed automatically by the worksheet when adding a cell
  • Added a property CellAddressType in the Cell class
  • Cells can now have null as value, interpreted as empty
  • Added a new overloaded method ResolveCellCoordinate to resolve the address type as well
  • Added the methods ValidateColumnNumber and ValidateRowNumber in the Cell class
  • In Address, the constructor with string and address type now only needs a string, since reference modifiers ($) are resolved automatically
  • Address objects are now comparable
  • Implemented better address validation
  • Range start and end addresses are swapped automatically, if reversed

Styles

  • Font class has now an enum of possible underline values (e.g. instead of a bool)
  • CellXf class supports now indentation
  • A new, internal style repository was introduced to streamline the style management
  • Color (RGB) values are now validated (Fill class has a method ValidateColor)
  • Style components have now more appropriate default values
  • MRU colors are now not collected from defined style colors anymore, but from the MRU list in the workbook object
  • The ToString function of styles and all sub parts will now give a complete outline of all elements
  • Fixed several issues with style comparison
  • Several style default values were introduced as constants

Formulas

  • Added uint as possible formula value. Valid types are int, uint, long, ulong, float, double, byte, sbyte, decimal, short and ushort
  • Added several validity checks

Reader

  • Added default values for dates, times and culture info in the import options
  • Added global casting import options: AllNumbersToDouble, AllNumbersToDecimal, AllNumbersToInt, EverythingToString
  • Added column casting import options: Double, Decimal
  • Added global import options: EnforcePhoneticCharacterImport, EnforceEmptyValuesAsString, DateTimeFormat, TemporalCultureInfo
  • Added a meta data reader for workbook meta data
  • All style elements that can be written can also be read
  • All workbook elements that can be written can also be read (exception: passwords cannot be recovered)
  • All worksheet elements that can be written can also be read (exception: passwords cannot be recovered)
  • Better handling of dates and times, especially with invalid (too low and too high numbers) values

Misc

  • Added a unit test project with several thousand, partially parametrized test cases
  • Added several constants for boundary dates in the Utils class
  • Added several methods for pane splitting in the Utils class
  • Exposed the (legacy) password generation method in the Utils class
  • Updated documentation among the whole project
  • Exceptions have no sub titles anymore
  • Overhauled the whole writer
  • Removed lot of dead code for better maintenance

v1.8.7


Release Date: 06.08.2022 (DMY)

  • Fixed a bug when setting a workbook protection password

v1.8.6


Release Date: 02.04.2022 (DMY)

  • Added an import option to display phonetic characters (like Ruby Characters / Furigana / Zhuyin / Pinyin are now discarded) in strings

Note: Phonetic characters are discarded by default. If the import option "EnforcePhoneticCharacterImport" is set to true, the phonetic transcription will be displayed in brackets, right after the characters to be transcribed

v1.8.5


Release Date: 27.03.2022 (DMY)

  • Fixed a follow-up issue on finding first/last cell addresses on explicitly defined, empty cells
  • Code maintenance

v1.8.4


Release Date: 20.03.2022 (DMY)

  • Fixed a regression bug, caused by changes of v1.8.3

v1.8.3


Release Date: 10.03.2022 (DMY)

  • Added functions to determine the first cell address, column number or row number of a worksheet
  • Adapted internal style handling
  • Adapted the internal building of XML documents
  • Fixed a bug in the handling of border colors

v1.8.2


Release Date: 20.12.2021 (DMY)

  • Added hidden property for worksheets when loading a workbook

Note: The reader functionality on worksheets is not feature complete yet. Additional information like panes, splitting, column and row sizes are currently in development

v1.8.1


Release Date: 12.09.2021 (DMY)

  • Fixed a bug when hiding worksheets

Note: It is not possible anymore to remove all worksheets from a workbook, or to set a hidden one as active. This would lead to an invalid Excel file

v1.8.0


Release Date: 10.07.2021 (DMY)

  • Added functions to split (and freeze) a worksheet horizontally and vertically into panes
  • Added a property to set the visibility of a workbook
  • Added a property to set the visibility of worksheets
  • Added two examples in the demo for the introduced split, freeze and visibility functionalities
  • Added the possibility to define column widths and row height even if there are no cells defined
  • Fixed the internal representation of column widths and row heights
  • Minor code maintenance

Note: The column widths and row heights may change slightly with this release, since the actual (internal) width and height is now applied when setting a non-standard column width or row height

v1.7.0


Release Date: 05.06.2021 (DMY)

  • Added functions to determine the last row, column or cell with data
  • Fixed documentation formatting issues
  • Updated readme and documentation

v1.6.0


Release Date: 18.04.2021 (DMY)

  • Introduced library version for .NET Standard 2.0 (and assigned demos)
  • Updated project structure (two projects for .NET >=4.5 and two for .NET Standard 2.0)
  • Added function SetStyle in the Worksheet class
  • Added demo for the new SetStyle function
  • Changed behavior of empty cells. They are now not string but implicit numeric cells
  • Added new function ResolveEnclosedAddresses in Range class
  • Added new function GetAddressScope in Cell class
  • Fixed the validation of cell addresses (single cell)
  • Defined several immutable lists as return values to IReadOnlyList
  • Minor code maintenance

Thanks to the following people (in the order of contribution date):

  • Shobb for the introduction of IReadOnlyList
  • John Lenz for the port to .NET Standard
  • Ned Marinov for the proposal of the new SetStyle function

v1.5.0


Release Date: 10.12.2020 (DMY)

  • Added indentation property of horizontal text alignment (CellXF) as style
  • Added example in demo for text indentation
  • Code Cleanup

v1.4.1


Release Date: 13.09.2020 (DMY)

  • Fixed a bug regarding numeric cells in the worksheet reader. Bug fix provided by John Lenz
  • Minor code maintenance
  • Updated readme and documentation

v1.4.0


Release Date: 30.08.2020 (DMY)

  • Added style reader to resolve dates and times properly
  • Added new data type TIME, represented by TimeSpan objects in reader and writer
  • Changed namespace from 'Styles' to 'NanoXLSX.Styles'
  • Added time (TimeSpan) examples to the demos
  • Added a check to ensure dates are not set beyond 9999-12-31 (limitation of OAdate)
  • Updated documentation
  • Fixed some code formatting issues

Notes

  • To be consistent, the namespace of 'Styles' was changed to 'NanoXLSX.Styles'. Minor changes may be necessary in existing code if styles were used
  • Currently, the style reader resolves only number formats to determine dates and times, as well as custom formats. Other components like fonts, borders or fills are neglected at the moment

v1.3.6


Release Date: 19.07.2020 (DMY)

  • Fixed a bug in the reader regarding dates, times and booleans
  • Fixed a bug in the method AddNextCellFormula

Note: Fixes provided by Silvio Burger and Thiago Souza. The fix for the reader bug is currently a work-around

v1.3.5


Release Date: 10.01.2020 (DMY)

  • Fixed a bug in the reader regarding decimal numbers (for locales where the decimal pointer is not a dot)
  • Formal changes

v1.3.4


Release Date: 01.12.2019 (DMY)

  • Fixed a bug of reorganized worksheets (when deleted in Excel)
  • Fixed a bug in the handling of shared strings
  • Minor code maintenance

v1.3.3


Release Date: 20.05.2019 (DMY)

  • Fixed a bug in the handling of streams (streams can be left open now)
  • Updated stream demo
  • Code Cleanup
  • Removed executable folder, since executables are available through releases, compilation or NuGet

v1.3.2


Release Date: 08.12.2018 (DMY)

  • Improved the performance of adding stylized cells by factor 10 to 100

v1.3.1


Release Date: 04.11.2018 (DMY)

  • Fixed a bug in the style handling of merged cells. Bug fix provided by David Courtel for PicoXLSX

v1.3.0


Release Date: 06.10.2018 (DMY)

  • Added missing features of PicoXLSX (synced with PicoXLSX version 2.6.1)
  • Added asynchronous methods SaveAsync, SaveAsAsync, SaveAsStreamAsync and LoadAsync
  • Added a new example for the introduced async methods
  • Renamed namespace Exception to Exceptions
  • Renamed namespace Style to Styles
  • Fixed a bug regarding formulas in the reader
  • Added support for dates in the reader
  • Documentation Update
  • Removed redundant code

v1.2.4


Release Date: 24.08.2018 (DMY)

  • Fixed a bug regarding formulas in the reader
  • Added support for dates in the reader
  • Documentation Update

v1.2.3


Release Date: 24.08.2018 (DMY)

  • Initial Release (synced to v 1.2.3 of NanoXLSX4j for Java)