Excelize 2.4.1 is Released – Go API for Spreadsheets

Excelize is a library written in pure Go providing a set of functions that allow you to write to and read from XLSX / XLSM / XLTM files. Supports reading and writing spreadsheet documents generated by Microsoft Excel™ 2007 and later. Supports complex components by high compatibility, and provided streaming API for generating or reading data from a worksheet with huge amounts of data.

GitHub: github.com/xuri/excelize

We are pleased to announce the release of version 2.4.1. Featured are a handful of new areas of functionality and numerous bug fixes.

A summary of changes is available in the Release Notes. A full list of changes is available in the changelog.

Release Notes

The most notable changes in this release are:

Compatibility

Change Go Modules import path to github.com/xuri/excelize/v2

Notable Features

  • Support set column width in streaming mode, related issue #625
  • Support merge cell in streaming mode, related issue #826
  • New support 2 formula functions: BESSELK, BESSELY
  • The formula calculation engine now supports defined name references
  • Add disable option for chart xAxis and yAxis
  • The function AddPivotTable support reference source data range by defined name, relate issue #856
  • The following function now is concurrency safety, relate issue #861
    • AddPicture and GetPicture concurrency insert or get the picture from the worksheet
    • Rows and Cols concurrency iterate rows and columns
    • SetSheetRow concurrency set cells for a row in the worksheet
    • SetCellStyle concurrency set cell style
    • NewStyle concurrency create the style
  • Export 24 function’s error message

Improve the Compatibility

  • Improves compatibility for default XML namespace attributes, fix generated corrupted file in some case
  • Improves compatibility with non-standard page setup attributes, fix open spreadsheet failed in some case
  • Add count attribute in shared strings table
  • Remove UTC timezone requirement when setting cell value with time, related issue #409
  • Improves compatibility with XML control character in the escape literal string
  • Rename exported field File.XLSX to File.Pkg
  • Change the sheet names are not case sensitive for NewSheet, GetSheetIndex, DeleteSheet, resolve issue #873
  • Fix missing pivot attribute of conditional formatting, resolve issue #883
  • Improvement compatibility with invalid first-page number attribute in the page layout
  • Add maximum character limit and fix missing preserve character for SetCellRichText

Bug Fixes

  • Fix 12/24 hours time format parsing error, resolve issue #823 and #841
  • Fix can’t get comments by GetComments in some cases, resolve issue #825
  • Fix issue when get and add comments on multi authors, resolve issue #829 and #830
  • Fix invalid file path and duplicate namespace when re-creating worksheet, resolve issue #834
  • Fix set outline attributes not work when the value of showOutlineSymbols, summaryBelow and summaryRight attributes are false
  • Avoid empty rows in the tail of the worksheet by GetRows, resolve issue #842
  • Fix missing formula cell when getting rows value, resolve issue #855
  • Fix comparison fails inside and outside IF function, resolve issue #858
  • Fix GetRowHeight actually get the height of the next row
  • Fix incorrect scope when getting and delete the defined name, resolve issue #879
  • Attribute LocalSheetID in the defined name should be equal to SheetIndex instead of SheetID
  • Fix missing set each cell’s styles when set columns style, resolve issue #467
  • Prevent panic when an incorrect range is provided as PivotTableRange on creating a pivot table
  • Fix reading decimals precision issue, resolve issue #848 and #852
  • Escape XML character in the drop list, avoid corrupted file generated, resolve issue #971
  • Fix incorrect character count limit in the drop list, resolve issue #972
  • Fix high CPU usage on reading cell value with number format caused by Excel time parse issue in some case, resolve issue #974
  • Fix month parsing error in custom number format in some cases

Performance

  • Reduce redundant memory on Save and SaveAs about 19%

Miscellaneous

  • Fix code security issue CWE-190 and CWE-681
  • The dependencies module has been updated
  • Unit tests and godoc updated
  • Use GitHub Action for unit testing
  • Documentation website with multilingual: Arabic, German, Spanish, English, French, Russian, Chinese, Japanese, and Korean, which has been updated
1 Like