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 fieldsAlignWithMargins
andScaleWithDoc
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 thePivotTableOptions
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 theChart
data type to set the chart area border - Add new
Type
field in theChartLine
type to set the line type - Add new exported source relationship and namespace
NameSpaceSpreadSheetXR10
,ContentTypeSlicer
,ContentTypeSlicerCache
, andSourceRelationshipSlicer
- 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 fieldFill
inChart
,ChartPlotArea
, andChartMarker
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 theChartSeries
data type, support to sets the position of the chart series data label - Add new field
BubbleSize
in theChart
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
andGetPictures
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 theOpenReader
, 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
orGetConditionalStyle
function to returns incorrectDecimalPlaces
field value, resolve issue #1777 - Fix the
CalcCellValue
function does not return raw value when enableRawCellValue
, 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)