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

·

5 min read

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.7.1. Featured are a handful of new areas of functionality and numerous bug fixes.

A summary of changes is available in the Release Notes.

Release Notes

The most notable changes in this release are:

Breaking Change

  • Remove the Color field in the ChartLine data type

  • Replace the data type ShapeParagraph with RichTextRun

  • Remove the Color field from the type Shape, and uses the Fill instead of it

  • Remove the exported type AutoFilterListOptions

  • Rename the exported type TableOptions to Table

  • The AddChart function require using ChartType enumeration value to specify the chart type

  • Change 7 functions signature:

    • Change the func (f *File) AutoFilter(sheet, rangeRef string, opts *AutoFilterOptions) error to func (f *File) AutoFilter(sheet, rangeRef string, opts []AutoFilterOptions) error

    • Change the func (f *File) AddPictureFromBytes(sheet, cell, name, extension string, file []byte, opts *GraphicOptions) error to func (f *File) AddPictureFromBytes(sheet, cell string, pic *Picture) error

    • Change the func (f *File) GetPicture(sheet, cell string) (string, []byte, error) to func (f *File) GetPictures(sheet, cell string) ([]Picture, error)

    • Change the func (f *File) AddVBAProject(bin string) error to func (f *File) AddVBAProject(file []byte) error

    • Change the func (f *File) GetComments() (map[string][]Comment, error) to func (f *File) GetComments(sheet string) ([]Comment, error)

    • Change the func (f *File) AddTable(sheet, rangeRef string, opts *TableOptions) error to func (f *File) AddTable(sheet string, table *Table) error

    • Change the func (sw *StreamWriter) AddTable(rangeRef string, opts *TableOptions) error to func (sw *StreamWriter) AddTable(table *Table) error

Notable Features

  • Add new functions SetSheetDimension and GetSheetDimension for workbook dimension supports, related issue #1463

  • The NewStyle function support to create of 17 kinds of fill variants styles

  • Increase max cell styles limit to 65430

  • The AddPicture function allowing insert BMP format images

  • The GetPictures function support to get multiple images in a cell

  • The SetConditionalFormat function support to creating a conditional format with a "stop if true" or "icon sets" rule

  • The SetConditionalFormat function support to set border color and create solid color for the color data bar, related issue #1462

  • The AddChart function support to set the format for the chart data series solid fill, related issue #1474

  • The AddChart function support to set the bubble size in a data series

  • The AddChart function support to specifies the values in second plot for the bar/pie of pie chart

  • The AddChart function support to set number format for chart data labels and axis, related issue #1499

  • The AddTable function support to specify if show header row of the table when create the table

  • The AddTable function support to validate table name, and added a new error constant ErrTableNameLength, related issue #1468

  • The AutoFilter function support to add multiple filter columns when create auto filter

  • The CalcCellValue function support to specify if applying number format style for the cell calculation result

  • The CalcCellValue function support double-byte chars for formula functions: LEFT, LEN, LENB, MID, MIDB, RIGHT and RIGHTB, related issue #1476

  • The CalcCellValue function now returns formula error string in the result, and using the error message in returns error, related issue #1490

  • Case-insensitive for the image file extension name, related issue #1503

  • The stream writer will be skip set cell value when got nil value, related issue #756

  • The GetCellHyperLink function support get cell hyperlink for merged cells

  • Add new exported data type ChartType for represents chart type enumeration

Improve the Compatibility

  • Add support for workbook function groups

  • Add support for strict theme namespace, related issue #1447

  • Fix panic caused by the workbook relationship part not exist

  • Improve compatibility with SST index which contains blank characters, related issue #1508

Bug Fixes

  • Fix decimal number format round issue in some cases

  • Fix incorrect cell type when modifying string cell with the time number, resolve issue #1464

  • Fix cell resolver caused incorrect calculation result, resolve issue #1469

  • Fix conditional format data bar min/max value doesn't work, resolve issue #1492

  • Supports 0 row height and column width, resolve issue #1461

Performance

  • Improve performance for apply number format with month name, related issue #1455

  • Speed up for checking merged cells, related issue #1448

Miscellaneous

  • A pure WebAssembly / Javascript port of Go Excelize library named excelize-wasm NPM package has been production-ready use

  • The dependencies module has been updated

  • Unit tests and godoc updated

  • Using the specialized name in variables and functions

  • 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:

  • liron-l (Liron Levin)

  • nathj07 (Nathan Davies)

  • Josh-Weston (Josh Weston)

  • jaby

  • FlowingSPDG (Shugo Kawamura)

  • barismar (Baris Mar Aziz)

  • doingNobb (张涛)

  • rpoetrap (Rizki Putra)

  • huangshaokun

  • CHANTXU64 (ChantXu64)

  • playGitboy