DEV Community

xuri
xuri

Posted on

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

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

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

Top comments (0)