Excelize 2.8.0 Released - Powerful open-source library for spreadsheet (Excel) document

·

5 min read

Excelize 2.8.0 Released

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™ 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.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. A full list of changes is available in the changelog.

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 DeleteTablesupport 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 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