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

·

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

Release Notes

The most notable changes in this release are:

Breaking Change

  • Upgrade requirements Go language version is 1.18 or later, for upgrade of dependency package golang.org/x/net

  • Change the data type for the HeaderFooterOptions structure fields AlignWithMargins and ScaleWithDoc as a pointer

  • Remove unused exported data structure ShapeColor

Notable Features

  • Add new exported function SetCellUint

  • Add new exported function GetPictureCells for get all picture cells

  • Add new exported function GetConditionalStyle for get the conditional format style definition

  • Add new exported function GetHeaderFooter for get the worksheet header and footer

  • Add new exported function AddSlicer for adding table and pivot table slicers

  • Add new exported function GetPivotTables for get pivot tables

  • Add new exported function DeletePivotTable for delete pivot table

  • Add a new Name field in the PivotTableOptions to support specify pivot table name

  • New support 7 formula functions: DBCS, SEARCH, SEARCHB, TEXT, TEXTAFTER, TEXTBEFORE and xlfn.ANCHORARRAY

  • Add export ChartLineType enumeration to specify the chart line type

  • Add new Border field in the Chart data type to set the chart area border

  • Add new Type field in the ChartLine type to set the line type

  • Add new exported source relationship and namespace NameSpaceSpreadSheetXR10, ContentTypeSlicer, ContentTypeSlicerCache, and SourceRelationshipSlicer

  • Add new exported extended URI ExtURIPivotCacheDefinition

  • Allow dot character in the defined name, table name, or pivot table name

  • Keep all cells value in the table range when deleting table

  • Support format cell value with fraction number format code

  • Support delete image files from the workbook internally when deleting pictures to reduce generated workbook size and resolve potential security issues

  • Support set the height and width for the comment box

  • Support update conditional formatting, data validations, defined names, drawing objects, formula reference and volatile dependencies on inserting/deleting columns/rows

  • Support 6 new kinds of conditional formatting types: text, blanks, no blanks, errors, no errors and time period

  • Support calculate formula with multiple dash arithmetic symbol

  • Support copy conditional format and data validation on duplicate row

  • Support unset custom row height if the height value is -1 when using the SetRowHeight function

  • The SetRowHeight function will return an error if given an invalid row height value

  • The AddChart function support set the data labels position for the chart

  • The AddChart function support set solid color or transparent fill for chart area, plot area, and maker, add a new field Fill in Chart, ChartPlotArea, and ChartMarker data type

  • The AddChart function support set chart axis font family, size and strike style

  • Add new field DataLabelPosition in the ChartSeries data type, support to sets the position of the chart series data label

  • Add new field BubbleSize in the Chart data type, support set the bubble size in all data series for the bubble chart or 3D bubble chart

  • Add new exported ChartDataLabelPositionType data type

  • The GetPictureCells and GetPictures function support get embedded cell images created by Kingsoft WPS™ Office

  • The SetConditionalFormat function support set conditional formatting with multiple cell ranges

  • Support to update defined names reference when rename worksheet

  • Add new GetBaseColor function support get the preferred hex color code

  • The calculation engine support date and formula type cells

  • Cell value reading functions inherit the Options settings of the OpenReader

Improve the Compatibility

  • Improve compatibility for absolute path drawing part

  • Improve compatibility for workbook internal tab ratio property value

  • Improve compatibility with empty custom number format code

  • Improve compatibility with the viewer which doesn't support default theme part namespace

  • Improve delete cell comment shape compatibility with KingSoft WPS™ Office

  • Saving workbook with sorted internal part path, make identically created workbooks hash checksum is same

Bug Fixes

  • Add check for MID and MIDB formula functions num_chars arguments, prevent panic on specifying a negative number

  • Fix empty calculate result with numeric arguments in LEN, LOWER, PROPER, REPT, UPPER, and IF formula functions

  • Fix calculate formula functions CHITEST and MMULT panic in some cases

  • Fix a v2.8.0 regression bug, error on set print area and print titles with built-in special defined name

  • Fix a v2.8.0 regression bug, corrupted workbooks generated by improving compatibility with internally indexed color and MRU colors styles parts

  • Fix a v2.8.0 regression bug, number format code apply result was empty

  • Fix a v2.7.1 regression bug, the bubble is hidden in the bubble or 3D bubble chart

  • Fixed panic on AutoFilter by adding nil pointer guard for local sheet ID

  • Fix corrupted workbooks generated when adding tables in some cases

  • Fix incorrect time number format result

  • Supports getting formula string cell value

  • Fix incorrect table ID generated in the workbook which contains single table cells

  • Fix missing relationship parts in the content types in some cases

  • Upgrade number format parser to fix missing literal tokens in some cases

  • Update built-in zh-cn and zh-tw language number format

  • Fix the incorrect custom number format ID allocated

  • Fix updating a table's range by removing it and creating it again doesn't work

  • Fix a potential issue that stream reader temporary files can not be clear

  • Fix incorrect formula calculation result in some cases

  • Fix concurrency race conditions on get cell value

  • Fix some format missing on get style definition

  • Fix number format scientific notation zero fill issues

  • Fix panic on read workbook with internal row element without r attribute

  • Fix GetCellRichText returns error on getting inline rich text cells

  • Fix invalid shared string table index on set cell value in some cases

  • Fix GetConditionalFormats panic on get conditional format without above average rules

  • Fix incorrect adjust merged cells on remove rows

  • Fix the SetConditionalFormat function creates incorrect multiple conditional formats rules priority

  • Fix the GetConditionalFormats function doesn't return gradient data bar rule

  • Fix the GetStyle or GetConditionalStyle function to returns incorrect DecimalPlaces field value

  • Fix the CalcCellValue function does not return raw value when enable RawCellValue

Performance

  • Improves performance for adding and removing pivot table and images

  • Reduce memory consumption by trimming the rows and cells

Miscellaneous

  • The dependencies module has been updated

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

  • fnickels (Francis Nickels III)

  • m12r (Matthias Endler)

  • Abdelaziz-Ouhammou

  • Juneezee (Eng Zer Jun)

  • yicixin (壹次心)

  • TeeRenJing (rjtee)

  • phperic (magicrabbit)

  • kjushka (Anton Petrov)

  • krstak (Marko Krstic)

  • lpxxn (Nick)

  • ByteFlyCoding

  • yangliyl (Yang Li)

  • 15535382838

  • TajangSec (Tajang)

  • lujin1 (lujin)

  • parkoo (Tian)

  • ZhangXiao1024 (ZX)

  • zcgly

  • bramvbilsen (Bram Vanbilsen)

  • user65536

  • tianaiyouqing (天爱有情)

  • cuishuang (cui fliter)

  • CooolNv (Xuesong)

  • yuegu520

  • oneweek20169902 (li)

  • 3zmx

  • 327674413

  • melf-xyzh (MELF晓宇)

  • L4nn15ter

  • rememberher (Jerry)

  • ooooooobh (cherry)

  • xxxwang1983

  • funa12

  • coolbit

  • taitaking (zhukewen)

  • kewenof

  • ivekkairi (Vivek Kairi)

  • edwardfward (Ed)