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
andGetPicture
concurrency insert or get the picture from the worksheetRows
andCols
concurrency iterate rows and columnsSetSheetRow
concurrency set cells for a row in the worksheetSetCellStyle
concurrency set cell styleNewStyle
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
toFile.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
andsummaryRight
attributes arefalse
- 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 toSheetIndex
instead ofSheetID
- 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
andSaveAs
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