Excelize 2.8.1 Released - Powerful open-source library for spreadsheet (Excel) document
Tags: go, excel, excelize, opensource
Published: 2024-02-25 19:32:01

---
title: Excelize 2.8.1 Released - Powerful open-source library for spreadsheet (Excel) document
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,Excelize,OpenSource
# cover_image: https://direct_url_to_image.jpg
# Use a ratio of 100:42 for best results.
# published_at: 2024-02-25 19:29 +0000
---

![Excelize 2.8.1 Released](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p1fbu6hwwi3ehbnzvdex.png)

Excelize is a library written in pure Go providing a set of functions that allow you to write to and read from XLAM / XLSM / XLSX / XLTM / XLTX 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.8.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.8.1). A full list of changes is available in the [changelog](https://github.com/xuri/excelize/compare/v2.8.0...v2.8.1).

Release Notes
------------
The most notable changes in this release are:

### Breaking Change

* Upgrade requirements Go language version is 1.18 or later, for upgrade of dependency package `golang.org/x/net`
* Change the data type for the `HeaderFooterOptions` structure fields `AlignWithMargins` and `ScaleWithDoc` as a pointer, resolve issue #1645
* Remove unused exported data structure `ShapeColor`

### Notable Features

* Add new exported function `SetCellUint`, related issue #1681
* Add new exported function `GetPictureCells` for get all picture cells, related issue #1218
* Add new exported function `GetConditionalStyle` for get the conditional format style definition, related issue #1690
* Add new exported function `GetHeaderFooter` for get the worksheet header and footer
* Add new exported function `AddSlicer` for adding table and pivot table slicers
* Add new exported function `GetPivotTables` for get pivot tables
* Add new exported function `DeletePivotTable` for delete pivot table
* Add a new `Name` field in the `PivotTableOptions` to support specify pivot table name
* New support 7 formula functions: DBCS, SEARCH, SEARCHB, TEXT, TEXTAFTER, TEXTBEFORE and xlfn.ANCHORARRAY
* Add export `ChartLineType` enumeration to specify the chart line type, related issue #1706
* Add new `Border` field in the `Chart` data type to set the chart area border
* Add new `Type` field in the `ChartLine` type to set the line type
* Add new exported source relationship and namespace `NameSpaceSpreadSheetXR10`, `ContentTypeSlicer`, `ContentTypeSlicerCache`, and `SourceRelationshipSlicer`
* Add new exported extended URI `ExtURIPivotCacheDefinition`
* Allow dot character in the defined name, table name, or pivot table name
* Keep all cells value in the table range when deleting table
* Support format cell value with fraction number format code
* Support delete image files from the workbook internally when deleting pictures to reduce generated workbook size and resolve potential security issues
* Support set the height and width for the comment box, related issue #1688
* Support update conditional formatting, data validations, defined names, drawing objects, formula reference and volatile dependencies on inserting/deleting columns/rows, related issues #1306 and #1615
* Support 6 new kinds of conditional formatting types: text, blanks, no blanks, errors, no errors and time period
* Support calculate formula with multiple dash arithmetic symbol
* Support copy conditional format and data validation on duplicate row, related issue #1729
* Support unset custom row height if the height value is -1 when using the `SetRowHeight` function
* The `SetRowHeight` function will return an error if given an invalid row height value
* The `AddChart` function support set the data labels position for the chart, related issue #1704
* The `AddChart` function support set solid color or transparent fill for chart area, plot area, and maker, add a new field `Fill` in `Chart`, `ChartPlotArea`, and `ChartMarker` data type, related issue #1786
* The `AddChart` function support set chart axis font family, size and strike style, related issue #1809
* Add new field `DataLabelPosition` in the `ChartSeries` data type, support to sets the position of the chart series data label
* Add new field `BubbleSize` in the `Chart` data type, support set the bubble size in all data series for the bubble chart or 3D bubble chart
* Add new exported `ChartDataLabelPositionType` data type
* The `GetPictureCells` and `GetPictures` function support get embedded cell images created by Kingsoft WPS&trade; Office, related issue #664
* The `SetConditionalFormat` function support set conditional formatting with multiple cell ranges, related issue #1783
* Support to update defined names reference when rename worksheet, related issue #1792
* Add new `GetBaseColor` function support get the preferred hex color code, related issue #1794
* The calculation engine support date and formula type cells, related issue #1807
* Cell value reading functions inherit the `Options` settings of the `OpenReader`, related issue #1815

### Improve the Compatibility

* Improve compatibility for absolute path drawing part
* Improve compatibility for workbook internal tab ratio property value
* Improve compatibility with empty custom number format code
* Improve compatibility with the viewer which doesn't support default theme part namespace, related issue #1694
* Improve delete cell comment shape compatibility with KingSoft WPS&trade; Office, related issue #1789
* Saving workbook with sorted internal part path, make identically created workbooks hash checksum is same, related issue #1732

### Bug Fixes

* Add check for MID and MIDB formula functions num_chars arguments, prevent panic on specifying a negative number, resolve issue #1647
* Fix empty calculate result with numeric arguments in LEN, LOWER, PROPER, REPT, UPPER, and IF formula functions
* Fix calculate formula functions CHITEST and MMULT panic in some cases
* Fix a v2.8.0 regression bug, error on set print area and print titles with built-in special defined name
* Fix a v2.8.0 regression bug, corrupted workbooks generated by improving compatibility with internally indexed color and MRU colors styles parts
* Fix a v2.8.0 regression bug, number format code apply result was empty, resolve issue #1658
* Fix a v2.7.1 regression bug, the bubble is hidden in the bubble or 3D bubble chart
* Fixed panic on `AutoFilter` by adding nil pointer guard for local sheet ID, resolve issue #1655
* Fix corrupted workbooks generated when adding tables in some cases
* Fix incorrect time number format result, resolve issue #1661
* Supports getting formula string cell value, resolve issue #1665
* Fix incorrect table ID generated in the workbook which contains single table cells
* Fix missing relationship parts in the content types in some cases
* Upgrade number format parser to fix missing literal tokens in some cases
* Update built-in zh-cn and zh-tw language number format
* Fix the incorrect custom number format ID allocated, resolve issue #1677
* Fix updating a table's range by removing it and creating it again doesn't work, resolve issue #1682
* Fix a potential issue that stream reader temporary files can not be clear, resolve issue #1680
* Fix incorrect formula calculation result in some cases, resolve issue #1681
* Fix concurrency race conditions on get cell value, resolve issue #1687
* Fix some format missing on get style definition, resolve issue #1708
* Fix number format scientific notation zero fill issues, resolve issue #1710
* Fix panic on read workbook with internal row element without `r` attribute, resolve issue #1723
* Fix `GetCellRichText` returns error on getting inline rich text cells
* Fix invalid shared string table index on set cell value in some cases
* Fix `GetConditionalFormats` panic on get conditional format without above average rules, resolve issue #1745
* Fix incorrect adjust merged cells on remove rows, resolve issue #1749
* Fix the `SetConditionalFormat` function creates incorrect multiple conditional formats rules priority, resolve issue #1770
* Fix the `GetConditionalFormats` function doesn't return gradient data bar rule, resolve issue #1769
* Fix the `GetStyle` or `GetConditionalStyle` function to returns incorrect `DecimalPlaces` field value, resolve issue #1777
* Fix the `CalcCellValue` function does not return raw value when enable `RawCellValue`, resolve issue #1803

### Performance

* Improves performance for adding and removing pivot table and images
* Reduce memory consumption by trimming the rows and cells, resolve issue #1712

### Miscellaneous

* The dependencies module has been updated
* Unit tests and godoc updated
* Documentation website with multilingual: Arabic, German, Spanish, English, French, Russian, Chinese, Japanese, and Korean, which has been updated

### Thank you

Thanks for all the contributors to Excelize. Below is a list of contributors that have code contributions in this version:

* fnickels (Francis Nickels III)
* m12r (Matthias Endler)
* Abdelaziz-Ouhammou
* Juneezee (Eng Zer Jun)
* yicixin (壹次心)
* TeeRenJing (rjtee)
* phperic (magicrabbit)
* kjushka (Anton Petrov)
* krstak (Marko Krstic)
* lpxxn (Nick)
* ByteFlyCoding
* yangliyl (Yang Li)
* 15535382838
* TajangSec (Tajang)
* lujin1 (lujin)
* parkoo (Tian)
* ZhangXiao1024 (ZX)
* zcgly
* bramvbilsen (Bram Vanbilsen)
* user65536
* tianaiyouqing (天爱有情)
* cuishuang (cui fliter)
* CooolNv (Xuesong)
* yuegu520
* oneweek20169902 (li)
* 3zmx
* 327674413
* melf-xyzh (MELF晓宇)
* L4nn15ter
* rememberher (Jerry)
* ooooooobh (cherry)
* xxxwang1983
* funa12
* coolbit
* taitaking (zhukewen)
* kewenof
* ivekkairi (Vivek Kairi)
* edwardfward (Ed)