Excelize 2.9.0 Released
Published on October 16, 2024 by xuri
We are pleased to announce the release of version 2.9.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
- Change the data type for the ConditionalFormatOptions structure field Format as a pointer, resolve issue #1867
Notable Features
- Add new functions DeleteSlicer and GetSlicers, related issue #810
- Add new function MoveSheet to support changing sheet order in the workbook, related issue #1076
- Add new AutoFitIgnoreAspect field in the GraphicOptions data type support for fill the cell with the image and ignore its aspect ratio
- Add new TickLabelPosition field in the ChartAxis data type support for set label position of the chart
- Add new fields ShowAll, InsertBlankRow and NumFmt field in the PivotTableField data type
- Add new fields ClassicLayout, FieldPrintTitles and ItemPrintTitles in the PivotTableOptions data type
- Introduce 2 new exported enumeration type ChartTickLabelPositionType and PictureInsertType
- Introduce new exported ChartLineUnset enumeration value
- Introduce 4 constants ExtURIDataField, ExtURIPivotField, ExtURIPivotFilter and ExtURIPivotHierarchy
- Introduce new exported error variable ErrPivotTableClassicLayout
- The MergeCell function support clear slave cells value when merging cells
- The AddDataValidation, DeleteDataValidation and GetCellStyle functions support concurrency safe, related issues #1825
- The GetDataValidations function support get data validations which storage in the extension lists, related issue #1835
- The SetSheetName function support case sensitivity, related issue #1856
- The GetPictureCells and GetPictures functions support for get the cell images inserted by IMAGE formula function and absolute paths for pictures
- The SetCellHyperLink function support remove hyperlink by None linkType, related issue #1940
- The AddChart function support create combo chart with same types, related issue #1940
- The AddChart function support set line type of scatter chart
- An error will be return if column header cell is empty in pivot table data range when create pivot table by AddPivotTable function, related issue #1945
- Add support for applying number format expression with language/location tags and ID
- Add support for apply number format for time and duration cell value, related issue #2004
- New support formula function: DOLLAR
Improve the Compatibility
- Improve compatibility for apply number format, support apply number format with alignment, resolve issue #1847
- Improvement compatibility for the workbook internal part with a spreadsheet namespace prefix, resolve issue #1886
- Improve compatibility for the workbook internal media files with absolute path, resolve issue #1888
Bug Fixes
- Fix a v2.8.1 regression bug, auto filter doesn't work in the LibreOffice, resolve issue #1830
- Fix a v2.8.1 regression bug, support to adjust data validation with multiple cell range, resolve issue #1831
- Fix a v2.8.1 regression bug, error on duplicate rows, if conditional formatting or data validation has multiple cell range reference
- Fix a v2.8.1 regression bug, incorrect cell value written if save multiple times, resolve issue #1906
- Fix a v2.8.1 regression bug, spark lines duplicate when creating spark lines on multiple sheets, resolve issue #1910
- The CalcCellValue function support calculate formula functions ISNUMBER, OR and FIND with matrix arguments, resolve issue #1819
- Fix the CalcCellValue function calculation result round issue, resolve issue #1851
- Fix the CalcCellValue function returns incorrect result of formula functions XIRR and XNPV, resolve issue #1989
- Fix the RemoveCol returns error when deleting columns, resolve issue #1829
- Fix incorrect result data type of the DATE formula function, resolve issue #1833
- Fix panic on read workbook with internal row element without r attribute
- Fix parentheses in formulas get cut out when inserting new columns or rows, resolve issue #1861
- Fix incorrect data validation escape result in some cases
- Fix some character can't be displayed in stream writer, resolve issue #1865
- Saving workbook with sorted internal part path to keep same hash of identical files and fix incorrect MIME type, resolve issue #1889
- Fix the AddChart function set axis format doesn't work in combo chart, resolve issue #1921
- Fix the AddChart function set incorrect primary axis titles position
- Fix the AddChart function set secondary vertical axis title is not displayed, resolve issue #1926
- Fix the AddChart function set line type of line chart does not work
- Fix the GetPivotTables function returns incorrect data range, resolve issue #1937
- Fix the GetStyle function panic when theme without sysClr, resolve issue #1963
- Fix the GetCellRichText function returns error when read cell without SST index, resolve issue #1999
- Fix the SetSheetVisible function panic on none views sheet, resolve issue #1969
- Fix percent sign missing in formatted result for zero numeric cell value, resolve issue #1942
- Fix missing horizontal axis in scatter chart with negative values
- Fix missing shape macro missing after adjusted drawing object, resolve issue #1957
- Fix missing conditional formatting after remove column in some cases, resolve issue #1968
- Fix read cell value with decimal value round issue, resolve issue #1979
- Support to set cell value with an IEEE 754 "not-a-number" value or infinity, resolve issue #119
Performance
- Fix v2.8.0 regression speed slowdown and memory usage increase issue
- Reduce memory usage for the GetRows function, related issue #1874
- Optimize ColumnNumberToName function performance, reduce about 50% memory usage and 50% time cost
Miscellaneous
- The dependencies module has been updated
- Unit tests and godoc updated
- Documentation website with multilingual: Arabic, German, English, Spanish, French, Japanese, Korean, Portuguese, Russian, Chinese Simplified and Chinese Traditional, which has been updated. Added Italian version of the document
Thank you
Thanks for all the contributors to Excelize. Below is a list of contributors that have code contributions in this version:
- mirgong (helloWorld)
- YueChenXu-Kimi (岳晨旭)
- JackMin1314 (陈王)
- paolobarbolini (Paolo Barbolini)
- iEvan-lhr (Evan lu)
- yetyear (yeahyear)
- ha5ky (hu5ky)
- lizhichao (vic)
- realzuojianxiang (realzuojianxiang)
- msackman (Matthew Sackman)
- yyle88 (yangyile-yyle88)
- yunkeweb (yunkeweb)
- iraj720 (Nima)
- jianxinhou
- barlevd
- 18409615759 (nna)
- qijinkui (xiaokui)
- user1121114685 (联盟少侠)
- wangsongyan
- vsemichev (Vovka Morkovka)
- zhayt (Aybek)
- ShowerBandV (ShowerBandV)
- imink (Patrick Wang)
- samkeke (wxy)
- pjh591029530
- zhangyimingdatiancai
- wanghaochen2024
- centurion-hub
- peng (Zhang Zhipeng)
- slashdotdash (Ben Smith)
- ArcholSevier
- liuwangchao
- Zncl2222 (Jian Yu, Chen)