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)