DEV Community

xuri
xuri

Posted on

Excelize 2.6.0 Released - Go language API for spreadsheets (Excel) files

Excelize 2.6.0 Released - Go language API for spreadsheets (Excel) files

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 to NameSpaceDublinCoreMetadataInitiative for typo fix
  • Rename exported variable ErrUnsupportEncryptMechanism to ErrUnsupportedEncryptMechanism
  • Rename exported variable ErrDataValidationFormulaLenth to ErrDataValidationFormulaLength
  • Rename exported variable ErrDefinedNameduplicate to ErrDefinedNameDuplicate
  • Remove exported variable XMLHeaderByte
  • Remove second useless parameter isCurrentSheet and error returns of the function SetSqrefDropList
  • 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 and GetWorkbookPrOptions to support setting and getting the FilterPrivacy and CodeName 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)