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