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

Excelize 2.8.1 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.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

  • 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, resolve issue #1645
  • Remove unused exported data structure ShapeColor

Notable Features

  • Add new exported function SetCellUint, related issue #1681
  • Add new exported function GetPictureCells for get all picture cells, related issue #1218
  • Add new exported function GetConditionalStyle for get the conditional format style definition, related issue #1690
  • 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, related issue #1706
  • 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, related issue #1688
  • Support update conditional formatting, data validations, defined names, drawing objects, formula reference and volatile dependencies on inserting/deleting columns/rows, related issues #1306 and #1615
  • 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, related issue #1729
  • 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, related issue #1704
  • 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, related issue #1786
  • The AddChart function support set chart axis font family, size and strike style, related issue #1809
  • 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, related issue #664
  • The SetConditionalFormat function support set conditional formatting with multiple cell ranges, related issue #1783
  • Support to update defined names reference when rename worksheet, related issue #1792
  • Add new GetBaseColor function support get the preferred hex color code, related issue #1794
  • The calculation engine support date and formula type cells, related issue #1807
  • Cell value reading functions inherit the Options settings of the OpenReader, related issue #1815

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, related issue #1694
  • Improve delete cell comment shape compatibility with KingSoft WPS™ Office, related issue #1789
  • Saving workbook with sorted internal part path, make identically created workbooks hash checksum is same, related issue #1732

Bug Fixes

  • Add check for MID and MIDB formula functions num_chars arguments, prevent panic on specifying a negative number, resolve issue #1647
  • 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, resolve issue #1658
  • 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, resolve issue #1655
  • Fix corrupted workbooks generated when adding tables in some cases
  • Fix incorrect time number format result, resolve issue #1661
  • Supports getting formula string cell value, resolve issue #1665
  • 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, resolve issue #1677
  • Fix updating a table’s range by removing it and creating it again doesn’t work, resolve issue #1682
  • Fix a potential issue that stream reader temporary files can not be clear, resolve issue #1680
  • Fix incorrect formula calculation result in some cases, resolve issue #1681
  • Fix concurrency race conditions on get cell value, resolve issue #1687
  • Fix some format missing on get style definition, resolve issue #1708
  • Fix number format scientific notation zero fill issues, resolve issue #1710
  • Fix panic on read workbook with internal row element without r attribute, resolve issue #1723
  • 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, resolve issue #1745
  • Fix incorrect adjust merged cells on remove rows, resolve issue #1749
  • Fix the SetConditionalFormat function creates incorrect multiple conditional formats rules priority, resolve issue #1770
  • Fix the GetConditionalFormats function doesn’t return gradient data bar rule, resolve issue #1769
  • Fix the GetStyle or GetConditionalStyle function to returns incorrect DecimalPlaces field value, resolve issue #1777
  • Fix the CalcCellValue function does not return raw value when enable RawCellValue, resolve issue #1803

Performance

  • Improves performance for adding and removing pivot table and images
  • Reduce memory consumption by trimming the rows and cells, resolve issue #1712

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)
2 Likes

Thanks for all your hard work. I use Excelize in production and it’s excellent.

Nice!

I just finished using Excelize for a pro-bono project and it worked GREAT (save for one small issue I had, which I fixed for my own needs, and submitted a draft PR in hopes it could help others with the same issue.)

Thank you for such wonderful software!

-Mike

1 Like

Nice job and excellent library!

1 Like

What is your rationale behind breaking changes in a Patch-Revision bump. Shouldn’t breaking changes like this at least varant a minor version increase according to SemVer ? So 2.9.0 instead of 2.8.1 ?

I like excelize - it’s a great library.

1 Like

Really great library. I hat used in production application.it is really fast too.

Please share more sample code. It will help developer lot

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.