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.6.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:
Compatibility
- Rename exported constants
NameSpaceDublinCoreMetadataIntiative
toNameSpaceDublinCoreMetadataInitiative
for typo fix - Rename exported variable
ErrUnsupportEncryptMechanism
toErrUnsupportedEncryptMechanism
- Rename exported variable
ErrDataValidationFormulaLenth
toErrDataValidationFormulaLength
- Rename exported variable
ErrDefinedNameduplicate
toErrDefinedNameDuplicate
- Remove exported variable
XMLHeaderByte
- Remove second useless parameter
isCurrentSheet
and error returns of the functionSetSqrefDropList
- Remove
TotalRows
of row iterator
Notable Features
-
ProtectSheet
now support protect sheet with specify algorithm: XOR, MD4, MD5, SHA1, SHA256, SHA384, and SHA512 -
UnprotectSheet
now support specified the second optional password parameter to remove sheet protection with password verification - New support 71 formula functions: AVERAGEIFS, BETADIST, BETA.DIST, BETAINV, BETA.INV, BINOMDIST, BINOM.DIST, BINOM.DIST.RANGE, BINOM.INV, CHIINV, CHITEST, CHISQ.DIST, CHISQ.DIST.RT, CHISQ.INV, CHISQ.INV.RT, CHISQ.TEST, CONFIDENCE.T, CORREL, COVAR, COVARIANCE.P, CRITBINOM, ERROR.TYPE, EXPON.DIST, EXPONDIST, F.DIST, F.DIST.RT, FDIST, F.INV, F.INV.RT, FINV, FORMULATEXT, F.TEST, FTEST, GAMMA.DIST, GAMMADIST, GAMMA.INV, GAMMAINV, GAMMALN.PRECISE, GAUSS, HOUR, HYPGEOM.DIST, HYPGEOMDIST, INDIRECT, LOGINV, LOGNORM.DIST, LOGNORMDIST, LOGNORM.INV, MODE, MODE.MULT, MODE.SNGL, NEGBINOM.DIST, NEGBINOMDIST, PHI, SECOND, SERIESSUM, SUMIFS, SUMPRODUCT, SUMX2MY2, SUMX2PY2, SUMXMY2, T.DIST, T.DIST.2T, T.DIST.RT, TDIST, TIMEVALUE, T.INV, T.INV.2T, TINV, T.TEST, TTEST, TYPE
- Check file extension on save the workbook
- Support workbook views mode and ruler display settings
- Improve number format support, introduced NFP (number format parser) dependencies module for custom dates and times number format and text place holder support, include local month name and AM/PM format in 19 languages (Afrikaans, Bangla, Chinese, English, French, German, Austria, Irish, Italian, Russian, Spanish, Thai, Tibetan, Turkish, Welsh, Wolof, Xhosa, Yi and Zulu) support for number format, related issues #660, #764, #1093, #1112, #1133
- New exported functions
SetWorkbookPrOptions
andGetWorkbookPrOptions
to support setting and getting theFilterPrivacy
andCodeName
properties of the workbook, resolve limitations when adding VBA project to the workbook, related issue #1148 - Formula engine now support calculation with the none parameter formula function after infix operator notation
- Support to read boolean data type cell value
- Support set hole size when create the doughnut chart by
AddChart
function, resolve issue #1172 - Export 4 errors
ErrPasswordLengthInvalid
,ErrUnsupportedHashAlgorithm
,ErrUnsupportedNumberFormat
,ErrWorkbookExt
so users can act differently on the different type of errors
Improve the Compatibility
- Improve compatibility with LibreOffice, fixed the issue auto filter doesn't work on LibreOffice if the sheet name has spaces, resolve issue #1122
- Improve the compatibility with alternate content, support preserve alternate content in the workbook, worksheet, and drawingML
- Improve the compatibility with page setup DPI fields
Bug Fixes
- Fix missing page setup of worksheet after re-saving the spreadsheet, resolve issue #1117
- Fix merged cells doesn't updated after opertaion in some cases
- Fix style parsing issue, which causes bold and other style missing, resolve issue #1119
- Fix file corrupted when save as in XLAM / XLSM / XLTM / XLTX extension in some case
- Correct cells style in merge range, make cell support inheritance columns/rows style, resolve issue #1129
- Fix incorrect style ID returned on getting cell style in some cases
- Fix incorrect build-in number format: 42
- Fixed parsing decimal precision issue in some case
-
SetCellDefault
support non-numeric value, resolve issue #1139 - Fixed show sheet tabs setting was missing on save as spreadsheet in some cases, resolve issue #1160
- Fix nested formula calculation result error, resolve issue #1164
- Fix a part of formula function calculation result precision issue and inconsistent result precision of formula calculation under x86 and arm64 processor (CPU) architecture
- This fix scientific notation parsing issue in some case
- Fix the issue that the chart axis maximum and minimum didn't work when the value is 0
Performance
- Improve streaming reading performance, based on the previously released version, reduce memory usage by about 50% at most for reading large data spreadsheet, and reduce 80% GC times for the row's iterator
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
Top comments (0)