IronXL for .NET Excel Library Changelog
IronXL Roadmap
IronXL was created to make it easy for developers to read and create XLS, XLSX, and CSV files in C# and all other .NET languages.
IronXL is leading the charge to empower developers to edit Excel files in C#, without the need for Office Interop.
Today our team is focused on further advancing IronXL by prioritizing feedback from our developer community.
Build releases are happening on a monthly basis, with new functionality making IronXL the preferred choice for many developers.
Long term, we plan to launch IronXL for multiple programming languages. Early-stage R&D is in progress for building further MS Office products for Word, PowerPoint, and the further Microsoft Office Suite.
June 2025
IronXL v2025.6.2
Features & Upgrades
https://www.nuget.org/packages/IronXL.Excel/2025.6.2
Release Notes
Updates:
- Updates
IronSoftware.System.Drawing
to 2025.6.2.
Bug Fixes:
- Fixes an issue where the
LastFilledCell
property incorrectly returned null for worksheets with sparse data. - Fixes an issue where
CreateNamedTable
corrupts Excel file when adding tables to different sheets.
May 2025
IronXL 2025.5.4
Features & Upgrades
https://www.nuget.org/packages/IronXL.Excel/2025.5.4
Release Notes:
Updates
- Updates
IronSoftware.System.Drawing
to 2025.5.3. - Updates
IronSoftware.Common
to 2025.3.1.
Bug Fixes
- Fixes an issue where
Rows.Length
returns an incorrect value when used with Excel files containing more than 500 rows.
April 2025
IronXL 2025.4.5
Features & Upgrades
https://www.nuget.org/packages/IronXL.Excel/2025.4.5
Release Notes:
- Updates
IronSoftware.System.Drawing
to version 2025.3.6. - Updates
IronSoftware.Common
to version 2025.3.1.
March 2025
IronXL 2025.3.1
Features & Upgrades
https://www.nuget.org/packages/IronXL.Excel/2025.3.1
Release Notes:
- Updates
IronSoftware.System.Drawing
to version 2025.3.5. - Updates
IronSoftware.Common
to version 2025.2.3.
February 2025
IronXL 2025.2.5
Features & Upgrades
https://www.nuget.org/packages/IronXL.Excel/2025.2.5
Release Notes:
- Updated
IronSoftware.System.Drawing
to 2025.1.6.
January 2025
IronXL 2025.1.1
Features & Upgrades
https://www.nuget.org/packages/IronXL.Excel/2025.1.1
Release Notes:
- Updated
IronSoftware.Common
to 2024.11.4. - Updated dependency packages to address known security vulnerabilities.
- Fixed an issue where loading and saving .xlsm files threw exceptions.
- Fixed an issue where loading Excel files caused an "equivalent part names" exception.
- Fixed an issue where adding rows broke formulas.
- Fixed an issue where loading Excel files with invalid data validation threw exceptions.
- Fixed an issue where setting the number format caused the generated HTML font color to be white.
December 2024
IronXL 2024.12.1
Features & Upgrades
https://www.nuget.org/packages/IronXL.Excel/2024.12.1
Release Notes:
- Updated
IronSoftware.System.Drawing
to 2024.12.3. - Updated
IronSoftware.Common
to 2024.11.2. - Improved performance for retrieving cell ranges (5-10x faster for medium to large files).
- Improved formula evaluation by caching the evaluated results.
- Fixed a null reference exception that occurred when loading certain files.
- Fixed an issue with retrieving date values from formulas.
- Added functionality for converting
Workbook
andWorksheet
in different formats as streams.
November 2024
IronXL 2024.11.16
Features & Upgrades
https://www.nuget.org/packages/IronXL.Excel/2024.11.16
Release Notes:
- Updated
IronSoftware.System.Drawing
to 2024.9.15 - Updated
IronSoftware.Common
to 2024.9.38 - Added support for switching column direction to right-to-left, useful for languages such as Arabic, Chinese, and Hebrew.
- Added methods for setting tab colors with
SetWorksheetTabColor
andSetWorksheetTabColorIndex
. - Added the
RemoveHyperlink
method to remove hyperlinks from cells. - Fixed an issue where accessing a cell's hyperlink threw a Null Reference Exception if the cell didn’t have one.
- Fixed an issue where accessing file-type hyperlinks in XLS files returned an empty string.
- Fixed an issue where the
ToDataTable
method did not accurately compute all data types.
October 2024
IronXL 2024.10.2
Features & Upgrades
https://www.nuget.org/packages/IronXL.Excel/2024.10.2
Release Notes:
- Updates
IronSoftware.System.Drawing
to version 2024.9.11
September 2024
IronXL 2024.9.3
Features & Upgrades
https://www.nuget.org/packages/IronXL.Excel/2024.9.3
Release Notes:
- Minor Bug Fixes
August 2024
IronXL 2024.8.5
Features & Upgrades
https://www.nuget.org/packages/IronXL.Excel/2024.8.5
Release Notes:
- Minor Bug Fixes
July 2024
IronXL 2024.7.1
Features & Upgrades
https://www.nuget.org/packages/IronXL.Excel/2024.7.1
Release Notes:
- Minor Bug Fixes
June 2024
IronXL 2024.6.1
Features & Upgrades
https://www.nuget.org/packages/IronXL.Excel/2024.6.1
Release Notes:
- Minor Bug Fixes
May 2024
IronXL 2024.5.5
Features & Upgrades
https://www.nuget.org/packages/IronXL.Excel/2024.5.5
Release Notes:
- Minor Bug Fixes
- Updates
IronSoftware.System.Drawing
to version 2024.5.1
April 2024
IronXL 2024.4.4
Features & Upgrades
https://www.nuget.org/packages/IronXL.Excel/2024.4.4
Release Notes:
- Fixes a bug where a "shared" formula (the kind that is copied across multiple cells) would be lost when saving a file.
- Updates
IronSoftware.System.Drawing
to version 2024.4.1
March 2024
IronXL 2024.3.20
Features & Upgrades
https://www.nuget.org/packages/IronXL.Excel/2024.3.20
Release Notes:
- Updates IronSoftware.Common to version 2024.1.7
- Updates IronSoftware.System.Drawing to version 2024.3.4
- Fixes a bug where the license key would not be picked up from the web.config file in .NET Framework
February 2024
IronXL 2024.2.25
Features & Upgrades
https://www.nuget.org/packages/IronXL.Excel/2024.2.25
Release Notes:
- Updates
IronSoftware.Common
to version 2024.1.2 - Fixes a bug with a very slow execution of methods loading data from
DataSets
(namelyLoadWorkSheetsFromDataSet
methods) - Performance improvements as a result of the above fix in many other methods that create large numbers of cells
- Fixes a bug where any style changes to a cell would cause a cell foreground color to be set to black
IronXL.Cell.Int64Value
andIronXL.Cell.Int32Value
methods are obsolete and will be removed in the future. UseIronXL.Cell.IntValue
andIronXL.Cell.LongValue
instead- Adds
IronXL.Cells.Comment
class to represent cell comments with setters and getters for all comment properties - Adds
Comment
property toIronXL.Cell
class with methods to add and remove comments. TheComment
property isnull
if cell has no comment. Comments are added as invisible by default
January 2024
IronXL 2024.1.21
Features & Upgrades
https://www.nuget.org/packages/IronXL.Excel/2024.1.21
Release Notes:
- Minor improvements and bug fixes
December 2023
IronXL 2023.12.19
Features & Upgrades
https://www.nuget.org/packages/IronXL.Excel/2023.12.19
Release Notes:
- Fixes a bug where creating defined names throws exceptions.
- Fixes the issues where loading spreadsheets containing a chart sheet throws an error. Note that chart sheets will still not be loaded. Supporting chart sheets is still a feature request.
- Adds a feature to convert named tables to
DataTables
. - Adds support for Data validations:
DataValidations
property added toWorkSheet
. It contains all data validations in the worksheet and contains methods to add and remove data validations.- All data validations types can be read from spreadsheets.
WholeNumber
,Decimal
,TextLength
,Date
,List
, andFormulaList
data validations can be added toWorkSheet
.
November 2023
IronXL 2023.11.12
Features & Upgrades
https://www.nuget.org/packages/IronXL.Excel/2023.11.12
Release Notes:
- IronDrawing is updated to version 2023.11.1
- Minor fixes and improvements
IronXL.Logger
class is deprecated. UseIronSoftware.Logger
instead
October 2023
IronXL v2023.10.8
Features & Upgrades
https://www.nuget.org/packages/IronXL.Excel/2023.10.8
Release Notes:
- IronDrawing is updated to version 2023.10.2
- Added dependency on IronSoftware.Common 2023.10.2
- Minor fixes and improvements
September 2023
IronXL v2023.9.29
Features & Upgrades
https://www.nuget.org/packages/IronXL.Excel/2023.9.29
Release Notes:
- IronDrawing is updated to version 2023.9.2
- Stability improvements
- Performance improvements up to 25% faster execution time in some cases
August 2023
IronXL v2023.8.19
Features & Upgrades
https://www.nuget.org/packages/IronXL.Excel/2023.8.19
Release Notes:
- Minor improvements and fixes.
- Updates dependencies.
July 2023
IronXL v2023.7.4
Features & Upgrades
https://www.nuget.org/packages/IronXL.Excel/2023.7.4
Release Notes:
- Adds the
GetMergedRegions
method, which is used to retrieve a list of merged regions. - Fixes a bug where the
Clear
method did not delete all worksheets in the collection. - Fixes a bug where the
InsertColumn
method skipped the last row. - Fixes a bug where the
Range.ToDataTable
method would stop converting when it encountered an empty row. - Adds
RemoveColumn
method group toRange
,RangeRow
,RangeColumn
,Worksheet
. InsertColumn
method group will now correctly shift the columns out of the way, updating the formulas and moving styles with the cells.- Improves performance time-wise by 20-25% in some cases of bulk data manipulation.
- Deprecates the
Range.AllRowsInRange
andRange.AllColumnsInRange
properties, useRange.Rows
andRange.Columns
instead. This is also true for theWorkSheet
,RangeRow
, andRangeColumn
classes. - WorkSheet's internal working range will now correctly update with all changes made to the worksheet.
- WorkSheet's internal working range will now include the empty columns at the end of the range which hold any styling information.
- Fixed numerous bugs in
Range.Trim
method, including a bug whereTrim
would not trim empty columns. Range.RemoveColumn
andRange.RemoveRow
methods will now ALWAYS remove the column/row entirely from the sheet, shifting up/to the left the rows/columns located below/to the right of the removed ones, if after the removal the column/row is empty.- Adds
Range.Count
property, which returns the number of cells in the range without iterating over all cells. - Changes the
Range.ColumnCount
andRange.RowCount
properties to return the number of columns/rows in the range without iterating over all cells. - Improves documentation for Range class and its heirs.
InsertRow
andInsertColumn
methods will now return the inserted row/column. Same forInsertRows
andInsertColumns
methods but these will return lists of inserted columns/rows.- Range's address will now be correctly updated when the range is changed (with
Trim
/Insert
/Remove
/Subtract
methods). - Adds
WorkSheet.RangeAddress
property with the address of the area in use on the sheet. - Updates
IronSoftware.System.Drawing
to version 2023.7.1
June 2023
IronXL v2023.6.4
Features & Upgrades
https://www.nuget.org/packages/IronXL.Excel/2023.6.4
Release Notes:
- Adds
SetBorderStyle
method, used to set border type and color. - Fixes a bug where "&" in the charts' series breaks the resulting file after save.
- Fixes a bug where if an .xlsx (.xlsm, .xltx, etc.) file had an opening and closing br tag in its internal XML structure -
WorkBook.Load
method would throw an exception. - Updates IronDrawing dependency to version 2023.6.1.
May 2023
IronXL v2023.5.4
Features & Upgrades
https://www.nuget.org/packages/IronXL.Excel/2023.5.4
Release Notes:
- Fixes an issue where license keys would not be retrieved from web.config in some .NET Framework ASP.NET projects
- Fixes possible warnings about System.Memory version conflicts
March 2023
IronXL v2023.4.13
Features & Upgrades
https://www.nuget.org/packages/IronXL.Excel/2023.4.13
Release Notes:
- Adds support for the Iron Suite license keys
- Fixes issues with license keys stored in .config and .json files not being picked up by IronXL
- Adds support for license keys stored in .config and .json files in subfolders of the application
February 2023
IronXL v2023.2.5
Features & Upgrades
https://www.nuget.org/packages/IronXL.Excel/2023.2.5
Release Notes:
- Agreement to EULA terms is now required before installing the nuget package
- Improves IntelliSense descriptions for Range class
- Fixes a bug where
WorkSheet.PhysicalColumnCount
property would throw an exception when accessed while no columns exist on the worksheet - Improves IntelliSense descriptions for
Cell.Hyperlink
property - Fixes a bug when setting
Cell.Hyperlink
property would in some cases detect the wrong hyperlink type - Improves the description of an exception that occurs when
AutoSizeRow
/AutoSizeColumn
methods are used while no fonts are found in the system - Updates dependencies
January 2023
IronXL v2023.1.14
Features & Upgrades
https://www.nuget.org/packages/IronXL.Excel/2023.1.14
Release Notes:
- Enum used for
WorkSheet.InsertImage
method is changed toIronXL.Drawing.Images.ImageFormat
- Fixes a bug where on different locales charts could become corrupted because of the decimal separator
- Performance improvements
December 2022
IronXL v2022.12.11262
Features & Upgrades
https://www.nuget.org/packages/IronXL.Excel/2022.12.11262
Release Notes:
- Fixes a bug wherein a
Licensing
exception is thrown when an application using IronXL is executed with a Visual Studio debugger hooked. - Fixes a bug wherein deleting one of the multiple charts and then adding another chart will throw an exception.
- Chart titles will no longer overlay the chart area.
IronXL v2022.12.10926
Features & Upgrades
https://www.nuget.org/packages/IronXL.Excel/2022.12.10926
Release Notes:
- Fixes a bug, where
WorkBook.ExportToHtml
was throwing an exception due to un-indexed colors in the document. - Fixes a bug, where getter calls for properties of
Range
,WorkSheet
,RangeRow
,RangeColumn
,RangeStyle
,RangeFont
, andRangeBorder
would unnecessarily create all cells in the range. - Fixes a bug, where exception was thrown upon loading .XLSX files with specific WebPublishing settings.
- Adds
WorkSheet.PhysicalColumnCount
andWorkSheet.PhysicalRowCount
properties, which return the number of rows and columns that are physically present in this worksheet at the moment. - Improves and updates IntelliSense documentation to clarify some of the
WorkSheet
's andRange
's properties and methods. - Improves performance when reading any of the
Range
object's properties, especially in case of large Ranges. This applies to all objects that are inherited from Range (WorkSheet
,RangeRow
, etc.).
November 2022
IronXL v2022.11.10251
Features & Upgrades
https://www.nuget.org/packages/IronXL.Excel/2022.11.10251
Release Notes:
- Adds overloads for
WorkBook
loading methods to accept a password for encrypted XLSX, XLSM, and XLTX workbooks. Full list of added overloads:- TryLoad(string filename, string password, out WorkBook workBook)
- Load(byte [] data, string password)
- Load(Stream stream, string password)
- LoadExcel(byte [] data, string password)
- LoadExcel(Stream file, string password)
- LoadExcel(string filename, string password)
- FromByteArray(byte [] data, string password)
- FromStream(Stream stream, string password)
- Adds a method
WorkBook.Encrypt(string password)
which will write a workbook into a MemoryStream, encrypt it using a password provided as an argument or the one stored in WorkBook.Password property, and return resulting encrypted MemoryStream. Only supported for XLSX, XLSM, and XLTX types of workbooks. - Adds a method
WorkBook.Decrypt(Stream stream, string password)
which will decrypt a Stream with a password provided as an argument and return the resulting decrypted MemoryStream. Only supported for XLSX, XLSM, and XLTX types of workbooks. - Fixes a bug where some border styles cause an exception when exporting workbook as HTML.
- Fixes a bug where
InsertRow
method would throw an exception if the row was inserted in the place of the last existing row. - Improves precision of
AutoSizeRow
andAutoSizeColumn
methods. - Improves performance of
InsertRow
method by 25%.
September 2022
IronXL v2022.9.9454
Features & Upgrades
https://www.nuget.org/packages/IronXL.Excel/2022.9.9454
Release Notes:
- Fixes a bug where first created
ConditionalFormattingRule
wasn't working properly. - Fixes a bug where font color wasn't applied by conditional formatting rule.
- Fixes a bug where duplicate style was created when
Cell.FormatString
property was changed in .xlsx. - Fixes a bug where
Range.Row(int)
andRange.Column(int)
methods could take minutes of time to execute for large ranges. - Adds an enumeration
IronXL.SortOrder
to indicate a direction for sorting where applicable. - Adds
Range.SortByColumn(string, SortOrder)
andRange.SortByColumn(int, SortOrder)
methods that allow sorting a range by a specified column, re-arranging rows of a range being sorted according to specified column's new order. - Removes dependency to
IronDrawing
nuget package and replaces it withIronSoftware.System.Drawing
.
IronXL v2022.9.9454
Features & Upgrades
https://www.nuget.org/packages/IronXL.Excel/2022.9.9454
Release Notes:
- Fixes a problem with a number of methods that were wrongly obfuscated in the previous release. List of the methods affected:
IronXL.Cells.CellFont.SetColor(Color)
,IronXL.Cells.CellStyle.SetBackgroundColor(Color)
,IronXL.Cells.XlsCellBorder.SetColor(Color)
,IronXL.Cells.XlsCellFont.SetColor(Color)
,IronXL.Cells.XlsCellStyle.SetBackgroundColor(Color)
,IronXL.Cells.XlsxCellBorder.SetColor(Color)
,IronXL.Cells.XlsxCellFont.SetColor(Color)
,IronXL.Cells.XlsxCellStyle.SetBackgroundColor(Color)
,IronXL.Ranges.RangeBorder.SetColor(Color)
,IronXL.Ranges.RangeFont.SetColor(Color)
,IronXL.Ranges.RangeStyle.SetBackgroundColor(Color)
,IronXL.Styles.IBorder.SetColor(Color)
,IronXL.Styles.IFont.SetColor(Color)
,IronXL.Styles.IStyle.SetBackgroundColor(Color)
. - Adds a dependency to an
IronDrawing
nuget package to enable implicit casting fromSystem.Drawing.Color
when using methods listed above. - Adds a method
IronXL.Drawing.Images.Image.ToAnyBitmap()
which creates anIronSoftware.Drawing.AnyBitmap
object from byte data of The Image object. - Updates End User License Agreement terms and conditions.
- IronXL.dll is now signed.
August 2022
IronXL v2022.8.8357
Features & Upgrades
https://www.nuget.org/packages/IronXL.Excel/2022.8.8357
Release Notes:
- Adds a feature of encrypting and decrypting ".xlsx", ".xlsm" and ".xltx" files with a password. Use
WorkBook.SaveAs(string fileName, string password)
method to encrypt theWorkBook
with provided password when saving it. UseWorkBook.Load(string filename, string password)
method to decrypt file with provided password when loading the workbook. Password can also be specified with the following:- Using
WorkBook.Password
property (workbook will be encrypted on save if this property is not null, and will not be encrypted if it is null) - Using
SavingOptions
object withSavingOptions.Password
property, when callingWorkBook.SaveAs(string fileName, SavingOptions options)
method - Using
LoadingOptions
object withLoadingOptions.Password
property, when callingWorkBook.Load(string filename, LoadingOptions options)
method
- Using
- To check if the
WorkBook
object will be encrypted on save useWorkBook.IsEncrypted
boolean property. Encryption can also be turned off by assigningWorkBook.IsEncrypted = false
(Note: workbook cannot be encrypted by assigningWorkBook.IsEncrypted = true
, this will throw an exception at runtime, asking to instead specify a password). - Setting passwords to a workbook of a type other than ".xlsx", ".xlsm" and ".xltx" will also throw an exception at runtime alerting the user that the workbook could not be encrypted.
- Adds support for .NET 6.0
- Removes dependency on System.Common.Drawing
- Removes support for .NET Framework 4.5. Minimum supported .NET Framework version is now 4.6.2
- Breaking change:
WorkBook.SaveAs(string filename, string listDelimiter)
method was renamed toWorkBook.SaveAsWithCustomDelimiter(string filename, string listDelimiter)
to remove ambiguity betweenSaveAs(string filename, string listDelimiter)
andSaveAs(string fileName, string password)
methods. - Breaking change:
IronXL.Drawing.Images.IImage.ToBitmap()
method is removed, as System.Common.Drawing is no longer supported. - Breaking change:
IronXL.Drawing.Images.IImage.ToImage()
method now returns aSixLabors.ImageSharp.Image
object used as a replacement for removed System.Common.Drawing objects. - Fixes a bug where a background color set to a cell or a range in XLSX workbook didn't render in Excel.
- Fixes a bug where Thai language locale threw license exception
- Fixes a bug where each time a new cell was assigned a DateTime value in XLSX workbook a new cell style was created for each cell, overflowing the style table and breaking the resulting file if the number of cells was > 64000.
- Improves speed of creating large amounts of cells with a DateTime value and format. For example, creating a workbook with 80K DateTime value and format cells on a single worksheet used to take 25 seconds, and now takes less than 0.8 seconds (actual performance will depend on the environment the code is executed in).
July 2022
IronXL v2022.7.7362
Features & Upgrades
https://www.nuget.org/packages/IronXL.Excel/2022.7.7362
Release Notes:
- Adds a way to change the string value of a cell without automatically formatting the cell: this is achieved through
StringValue
property of a Cell. - Adds
AutoSizeRow
method toRow
andWorkSheet
, which changes the height of a row to fit the contents. - Adds
AutoSizeColumn
method toColumn
andWorkSheet
, which changes the width of a row to fit the contents. - Fixes a bug, where an exception was thrown when a border was added or changed.
- Fixes a bug, where an exception was thrown when a cell value was changed to a formula that depends on a single cell, for example "=A1".
- Fixes a bug, where a string similar to something like "12-720" was parsed as a date in a year 720 when added to a cell. Excel doesn't support dates that predate year 1900. Strings like this are no longer parsed as dates. However, strings that could be parsed as a valid date after 1900 will still be parsed as a date. For example "12-1956". Use
StringValue
property to bypass this parse. - Fixes a bug, where an existing workbook is loaded, changed and saved: cells could lose original formatting when their contents were changed. This is no longer the case.
June 2022
IronXL v2022.6.6825
Features & Upgrades
https://www.nuget.org/packages/IronXL.Excel/2022.6.6825
Release Notes:
- Adds a new
IronXL.Formatting.ConditionType
. - Old
IronXL.Formatting.Enums.ConditionType
is obsolete. - Adds support for "Format as Table" styles.
- Fixes a bug where files containing pivot tables were loaded through IronXL then saved and resulting files come out corrupted.
- Fixes a bug where a range was copied and pasted, workbook is saved and resulting file comes out corrupted.
- Fixes a bug where a file containing specific chart types was loaded then saved and resulting file comes out corrupted.
- Fixes a bug where a file containing .bmp images was loaded, but .bmp images could not be reached through code.
- Fixes a bug where a workbook is created containing an arbitrarily large number of used cells, then saved and resulting file comes out corrupted.
- Fixes some other rare bugs that occasionally might result in a corrupted file.
- Fixes where any style changed applied to a range of cells took exorbitant amount of time. Style changes include changes of fonts (height, boldness, etc.), vertical alignment, horizontal alignment, etc.
- Improves overall stability of resulting files, both created using IronXL and imported and edited by IronXL files.
- Greatly improves performance, generating a file with 10000 used cells used to take up 1.5 minutes, now takes only 20 seconds (will vary depending on operations performed on a cell by your code).
March 2022
IronXL v2022.3.0
Features & Upgrades
https://www.nuget.org/packages/IronXL.Excel/2022.3.0
Release Notes:
- Improved: Support .NET 6
- Improved: Speed and Stability
December 2021
IronXL v2021.12.0
Features & Upgrades
https://www.nuget.org/packages/IronXL.Excel/2021.12.0
Release Notes:
- Improved: Support for .NET 5 and .NET 6 beta
- Improved: Speed and Stability
- Improved: Logging
October 2021
IronXL v2021.11.0
Features & Upgrades
https://www.nuget.org/packages/IronXL.Excel/2021.11.0
Release Notes:
- Improved: Support for .NET 5 and .NET 6 beta
- Bug Fixed: License Keys validation is now whitespace safe
- Improved: Speed and Stability
August 2021
IronXL v2021.9.0
Features & Upgrades
https://www.nuget.org/packages/IronXL.Excel/2021.9.0
Release Notes:
- Bug Fixed: Now works with .NET 5.07
- Bug Fixed: License Keys reading from project configuration files (edge cases)
- Improved: Speed and Stability