Excelize 2.8.0 Released - Powerful open-source library for spreadsheet (Excel) document
Tags: go, excel, excelize, opensource
Published: 2023-08-27 16:16:00

---
title: Excelize 2.8.0 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: 2023-08-27 16:16 +0000
---


![Excelize 2.8.0 Released - Powerful open-source library for spreadsheet (Excel) document](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/f29cbu6njt0mk2ppuaia.jpg)

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.0. 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.0). A full list of changes is available in the [changelog](https://github.com/xuri/excelize/compare/v2.7.1...v2.8.0).

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

### Breaking Change

* Rename exported variable `ErrTableNameLength` to `ErrNameLength`
* Rename exported type `PaneOptions` to `Selection`
* Rename the `Runs` field to `Paragraph` in the exported `Comment` data type
* Remove the `Lang` field in the `Style` data type
* Removed exported `ChartTitle` data type, and using the `RichTextRun` data type instead of it
* Changed the data type for the `DecimalPlaces` to pointer of integer
* Change the default point to pixels conversion factor, resolve issues #279 and #1536
* Change the `AddShape` function signature: `func (f *File) AddShape(sheet, cell string, opts *Shape) error` to `func (f *File) AddShape(sheet string, opts *Shape) error`

### Notable Features

* Add new exported error variables `ErrExistsTableName` and `ErrorFormControlValue`
* Add new options `ShortDatePattern`, `LongDatePattern`, `LongTimePattern` and `CultureInfo` in the `Options` data type, related issue #1199
* Add new exported data type `CultureName` enumeration for country code
* New functions `GetTables` and `DeleteTable`support to get and remove tables, related issues #674 and #1454
* New function `GetStyle` support to get style definitions, related issues #314, #1520 and #1521
* Support applying cell value with placeholder, padding, rounds numbers, currency, accounting and switches argument number format, and support applying date and time number format for 812 language tags, related issue #660
* New support 10 formula functions: ARRAYTOTEXT, FORECAST, FORECAST.LINEAR, FREQUENCY, INTERCEPT, ODDFYIELD, ODDLPRICE, ODDLYIELD, PROB, VALUETOTEXT
* Add file path length limitation details in the error message
* New function `GetPanes` support to get sheet panes and view selection
* New functions `AddFormControl`, `GetFormControls` and `DeleteFormControl` support to form controls, related issues #301 and #1169
* The `AddChart` function support set primary titles, related issue #1553
* The `AddChart` function support creating chart with a secondary series axis, related issue #518
* The `AddChart` function support formatting and setting rich text titles for the chart, related issue #1588
* Add check for shape type for the `AddShape` function, an error will be returned if no shape type is specified
* Support read cell values formatted by the Japanese calendar number format, related issue #1590
* The `GetPictures` function support read one cell anchor pictures, related issue #1585
* The `NewConditionalStyle` function support to create a conditional format with number format and protection, related issue #1610

### Improve the Compatibility

* Support checking cell value length with multi-bytes characters, related issue #1517
* Prevent create duplicate tables and defined name with the same name
* Improve the cell comment box shape size compatibility with KingSoft WPS
* Support fallback to default column width in sheet format property, related issue #1536
* Made case in-sensitive for internal worksheet XML path to improve compatibility, related issue #1591

### Bug Fixes

* Escape XML characters after checking cell value length, fix stream writer generated file corrupted, resolve issues #1518, #1519 and #1530
* Fix incorrect comment box size for multi-line plain text comments
* Preventing format text cell value as a numeric, resolve issues #1523, #1528 and #1533
* Fix race conditions for concurrency safety functions
* Fix incorrect round millisecond for the date time
* Fix incorrect number formatted result for date and time with 12 hours at AM
* Fix incorrect formula functions SUMIFS and AVERAGEIFS result, resolve issue #1564
* Fix basic arithmetic operator priority issues in the calculating engine, resolve issue #1599
* Fix across worksheet reference issue for the formula calculation engine
* Fix adjust table issue when after removing rows, resolve issue #1539
* Support to get multiple images in one cell, resolve issue #1548
* Fix the added picture position was incorrect in some cases, resolve issue #1560
* Support adjusting the formula when inserting columns and rows, fix the workbook corruption caused by inserting columns or rows caused, resolve issue #1565
* Formula function CONCAT, CONCATENATE support concatenation of multiple cell values, resolve issue #1569
* Fix incorrect formula calculate results on a nested argument function which returns a numeric result, resolve issue #1582
* Fix internal graphic object counter issues caused added picture was duplicated, resolve issue #1584
* Fix read date time cell result was incorrectly caused by hours rounding issue, resolve issue #1587
* Fix panic on getting merged cells with the same start and end axis

### Performance

* Optimizing regexp calls to improve performance, related issue #1532
* This avoid unnecessary byte/string conversion, related issue #1541

### Miscellaneous

* The dependencies module has been updated
* Simplify variable declaration and error return statements
* Remove the built-in language number format code mapping with Unicode values
* Remove the internal `xlsxTabColor` data type, using the `xlsxColor` data type instead of `xlsxTabColor`
* Unit tests and godoc updated
* [Documentation website](https://xuri.me/excelize) 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:

* IAkumaI (Valery Ozarnichuk)
* sillydong (Chen Zhidong)
* fudali113 (fudali)
* Juneezee (Eng Zer Jun)
* joehan109
* yicixin (壹次心)
* vb6iscool
* chengcxy (chengxinyao)
* lidp20
* JDavidVR (David)
* fsfsx
* cnmlgbgithub