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

Discussion (0)