Excelize 2.8.1 Released
Published on February 25, 2024 by xuri
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.
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)