DEV Community

xuri
xuri

Posted on

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

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

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

Top comments (1)

Collapse
 
artydev profile image
artydev

Thanks