Excelize 2.4.1 is Released
Tags: go, excel, xlsx
Published: 2021-08-01 16:18:01

---
title: Excelize 2.4.1 is Released
published: true
description: Excelize is a library written in pure Go and providing a set of functions that allow you to write to and read from XLSX files. 
tags: Go,Excel,Golang,XLSX 
cover_image: https://dev-to-uploads.s3.amazonaws.com/uploads/articles/74kvno6zvmg4zrenp9dw.jpg
---

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&trade; 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](https://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](https://github.com/xuri/excelize/releases/tag/v2.4.1). A full list of changes is available in the [changelog](https://github.com/xuri/excelize/compare/v2.4.0...v2.4.1).

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 case, 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