DEV Community

xuri
xuri

Posted on

3 2 1 1 2

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

Heroku

Build apps, not infrastructure.

Dealing with servers, hardware, and infrastructure can take up your valuable time. Discover the benefits of Heroku, the PaaS of choice for developers since 2007.

Visit Site

Top comments (1)

Collapse
 
artydev profile image
artydev

Thanks

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay