IronXL for .NET 2022.x

Released: Mar 10, 2022

2022.x での更新項目

2022.12.11262

Updated Dec 29, 2022

Fixes

  • Bug where a licensing exception is thrown, when an application using IronXL is executed with a Visual Studio debugger hooked.
  • Bug where deleting one of the multiple charts and then adding another chart throws an exception.
  • Chart titles will now not overlay the chart area.

2022.12.10926

Updated Dec 8, 2022

Features

  • Added 'WorkSheet.PhysicalColumnCount' and 'WorkSheet.PhysicalRowCount' properties, which return the number of rows and columns that are currently physically present in this worksheet.
  • Improved and updated IntelliSense documentation to clarify some of the 'WorkSheet' and 'Range' properties and methods.
  • Improved performance when reading 'Range' object properties, especially in the case of large ranges. This applies to all objects that are inherited from 'Range' including 'WorkSheet' and 'RangeRow' etc.

Fixes

  • Fixed a bug where WorkBook.ExportToHtml was throwing an exception due to un-indexed colors in the document.
  • Fixed a bug where getter calls for properties of Range, WorkSheet, RangeRow, RangeColumn, RangeStyle, RangeFont and RangeBorder would unnecessarily create all cells in the range.
  • Fixed a bug where exception was thrown upon loading .XLSX files with specific WebPublishing settings.

2022.11.10251

Updated Nov 2, 2022

Features

  • Added 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).
  • Added new WorkBook.Encrypt(string password) method 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.
  • Added new WorkBook.Decrypt(Stream stream, string password) method which will decrypt a Stream a password provided as an argument and return resulting decrypted MemoryStream. Only supported for XLSX, XLSM and XLTX types of workbooks.
  • Improved precision of AutoSizeRow and AutoSizeColumn methods.
  • Improved performance of InsertRow method by 25%.

Fixes

  • Fixed a bug where some border styles cause an exception when exporting workbook as HTML.
  • Fixed a bug where InsertRow method would throw an exception, if the row was inserted in the place of the last existing row.

2022.9.9454

Updated Sep 29, 2022

Features

  • Added an enumeration 'IronXL.SortOrder' to indicate a direction for sorting where applicable.
  • Added 'Range.SortByColumn(string, SortOrder)' and 'Range.SortByColumn(int, SortOrder)' methods, which allow you to sort a range by a specified column and re-arrange the rows of a range according to a specified column's new order.
  • Removed dependency to IronDrawing nuget package and replaced it with IronSoftware.System.Drawing.

Fixes

  • Fixed a bug where first created ConditionalFormattingRule wasn't working properly.
  • Fixed a bug where font color wasn't applied by conditional formatting rule.
  • Fixed a bug where duplicate style were created when Cell.FormatString property was changed in .xlsx.
  • Fixed a bug where Range.Row(int) and Range.Column(int) methods could take minutes of time to execute for large ranges.

2022.9.8711

Updated Sep 2, 2022

Features

  • Adds a dependency to a IronDrawing nuget package to enable implicit casting from System.Drawing.Color.
  • Adds a method IronXL.Drawing.Images.Image.ToAnyBitmap() which creates an IronSoftware.Drawing.AnyBitmap object from byte data of The Image object.
  • IronXL.dll is now signed.

Fixes

  • Fixes a problem with a number of methods which were wrongly obfuscated in previous release.

2022.8.8357

Updated Aug 23, 2022

Features

  • Added the ability to encrypt and decrypt ".xlsx", ".xlsm" and ".xltx" files with a password.
    • Use WorkBook.SaveAs(string fileName, string password) method to encrypt the WorkBook with provided password when saving it.
    • Use WorkBook.Load(string filename, string password) method to decrypt file with provided password when loading the workbook.
    • Password can also be specified with 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 with SavingOptions.Password property, when calling WorkBook.SaveAs(string fileName, SavingOptions options) method.
      • Using LoadingOptions object with LoadingOptions.Password property, when calling WorkBook.Load(string filename, LoadingOptions options) method.
    • To check if the WorkBook object will be encrypted on save use WorkBook.IsEncrypted boolean property. Encryption can also be turned off by assigning WorkBook.IsEncrypted = false (Note: workbook cannot be encrypted by assigning WorkBook.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 user that the workbook could not be encrypted.
  • Improved support for Microsoft .NET 6.0.
  • Removed dependency on System.Common.Drawing.
  • Removed 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 has been renamed to WorkBook.SaveAsWithCustomDelimiter(string filename, string listDelimiter) to remove ambiguity between SaveAs(string filename, string listDelimiter) and SaveAs(string fileName, string password) methods.
  • Breaking change: IronXL.Drawing.Images.IImage.ToBitmap() method has been removed, as System.Common.Drawing is no longer supported.
  • Breaking change: IronXL.Drawing.Images.IImage.ToImage() method now returns a SixLabors.ImageSharp.Image object used as a replacement for removed System.Common.Drawing objects.
  • Improved 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 then 0.8 seconds (actual performance will depend on the environment the code is executed in).

Fixes

  • Fixed a bug where a background color set to a cell or a range in XLSX workbook didn't render in Excel.
  • Fixed a bug where Thai language locale threw license exception.
  • Fixed 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.

2022.7.7362

Updated Jul 13, 2022

Features

  • Added the ability to change the string value of a cell without automatically formatting the cell.
  • Added AutoSizeRow method which changes the height of a row to fit the contents.
  • Added AutoSizeColumn method which changes the width of a column to fit the contents.

Fixes

  • Fixed a bug where an exception was thrown, when a border was added or changed.
  • Fixed 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".
  • Fixed 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.
  • Fixed 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.

2022.6.6825

Updated Jun 23, 2022

Features

  • Added new IronXL.Formatting.ConditionType.
  • Old IronXL.Formatting.Enums.ConditionType is now obsolete.
  • Added support for 'Format' as a Table style.
  • Improved overall stability when resulting files, both created using IronXL and imported and edited by IronXL files.
  • Improved performance generating a file with 10,000 cells.

Fixes

  • Fixed a bug where files containing pivot tables were loaded through IronXL then saved and resulting files come out corrupted.
  • Fixed a bug where a range was copied and pasted, workbook is saved and resulting file comes out corrupted.
  • Fixed a bug where a file containing specific chart types was loaded then saved and resulting file comes out corrupted.
  • Fixed a bug where a file containing .bmp images was loaded, but .bmp images could not be reached through code.
  • Fixed a bug where a workbook is created containing an arbitrarily large number of used cells, then saved and resulting file comes out corrupted.
  • Fixed some other rare bugs that occasionally might result in a corrupted file.
  • Fixed a 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.

2022.3.0

Updated Mar 10, 2022

Features

  • Added Microsoft .NET 6 support.
  • Improved speed and stability.