Excelize 2.11.1 Released - Open-source library for spreadsheet

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.11.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

  • Upgraded requirement: Go language version is Go 1.26.0 or later, due to upgrading dependency package golang.org/x/crypto

Security

  • Fixed a panic when getting a cell value with a negative shared string index (CVE-2026-104819), related security advisory GHSA-48hm-4h8j-58fg
  • Fixed a GetPivotTables panic on invalid pivot table field indices (CVE-2026-107211), related security advisory GHSA-mx22-3794-2vpv
  • Fixed an unbounded row number in the rows iterator (CVE-2026-107212), related security advisory GHSA-jw42-f3rr-4cc3
  • Fixed a GetSlicers panic when getting slicers from a worksheet without a drawing part (CVE-2026-107213), related security advisory GHSA-r7x5-4969-99p7
  • Fixed a panic when decrypting a malformed workbook (CVE-2026-107214), related security advisory GHSA-2j4c-ffch-9f23
  • Fixed unbounded EncryptionInfo and EncryptedPackage stream sizes being allocated when decrypting a workbook (CVE-2026-107215), related security advisory GHSA-x2q3-8cjh-766f
  • Fixed a CalcCellValue stack overflow caused by circular ANCHORARRAY formula references (CVE-2026-107216), related security advisory GHSA-wp2g-vpjj-g53r
  • Fixed ColumnNameToNumber and JoinCellName accepting invalid column names, which caused integer overflow (CVE-2026-107217), related security advisory GHSA-c85p-xxjj-2r75
  • Fixed Unicode handling and count overflow in the LEFT, LEFTB, RIGHT, and RIGHTB formula functions (CVE-2026-107218), related security advisory GHSA-8jjq-8j9w-m2v6
  • Fixed an unbounded spin count when deriving the agile decryption key (CVE-2026-107219), related security advisory GHSA-jrfj-fhj2-jjvm
  • Fixed a panic on a worksheet with an empty merged cell reference (CVE-2026-107220), related security advisory GHSA-g27h-8qhm-6pff
  • Fixed a panic on a row whose cells are not in ascending column order (CVE-2026-107221), related security advisory GHSA-8mcq-6wmr-jrjv
  • Fixed a GetConditionalFormats panic on malformed conditional formatting rules (CVE-2026-107222), related security advisory GHSA-rxcj-4pj5-74gr
  • Fixed an overflow of the minimum and maximum column numbers (CVE-2026-107223), related security advisory GHSA-fq3v-74gv-27gm
  • Fixed a panic by rejecting Zip64 uncompressed sizes that do not fit in a signed int64 (CVE-2026-107224), related security advisory GHSA-fw94-4wwp-w8pw
  • Fixed a panic when getting styles with a negative style index (CVE-2026-107225), related security advisory GHSA-5h23-36rv-pm65

Notable Features

  • Added new EmbeddedObject data type
  • Added 2 new constants, MaxCFBStreamSizeV3 and MaxCFBStreamSizeV4
  • Added new function GetShapes to support get shape, related issue 436
  • Added new functions GetEmbeddedObjects and SetGetEmbeddedObject to support get and set embedded objects, related issues 158 and 2186
  • The CalcCellValue function now supports matrix arguments in the AND formula function
  • The SetConditionalFormat function now validates the style index, related issue 2400

Compatibility Improvements

  • Aligned the numeric precision of values stored by the SetCellValue function with Microsoft Excel™, related issue 1757

Bug Fixes

  • Fixed the GetPictures function not returning the edit positioning in some cases, resolved issue 2217
  • Fixed the CalcCellValue function returning incorrect results when error values appear inside parentheses or operators, resolved issues 1164 and 2344
  • Fixed the CalcCellValue function not returning the expected error in some cases, resolved issues #2349 and #2432
  • Fixed the CalcCellValue function returning incorrect results for 16 formula functions: COUNT, COUNTA, EDATE, HLOOKUP, IF, INDIRECT, ISNUMBER, MDETERM, MINVERSE, OR, SUM, TRIM, VALUE, VLOOKUP, WEEKDAY and XLOOKUP, resolved issues #2411, #2412, #2413, #2414, #2415, #2416, #2417, #2430, #2436, #2439, and #2445
  • Fixed a CalcCellValue panic on unbalanced closing parentheses in a formula, resolved issue 2409
  • Fixed a CalcCellValue panic when calculating the AVERAGEIFS, COUNTIFS, MAXIFS, MINIFS, PERCENTILE.EXC and SUMIFS formula functions with invalid arguments, resolved issue 2426
  • Fixed the AddChart and AddChartSheet functions generating invalid charts that corrupted the workbook in some cases, resolved issues #2355 and #2356
  • Fixed stream writer not applying number formatting to duration cell values, resolved issue 2371
  • Fixed precision loss when setting cell values with time.Duration, resolved issue 2372
  • Fixed the AddSlicer function reusing the pivot table slicer cache for different fields, resolved issue 2383
  • Fixed the GetStyle function returning an invalid style for fills without a pattern, resolved issue 2384
  • Fixed the GetFormControls and GetTables functions being unable to get form controls and tables when the workbook uses absolute paths, resolved issue 2386
  • Fixed the GetPanes function being unable to get split panes in some cases, resolved issue 2387
  • Fixed the SetCalcProps function being unable to set calculation properties to false, resolved issue 2404
  • Fixed the ExcelDateToTime function returns dates one day early for January and February 1900, resolved issue 2466

Miscellaneous

  • Updated dependencies
  • Updated unit tests and godoc
  • Updated the documentation website, which is available in 12 languages: Arabic, German, English, Spanish, French, Italian, Japanese, Korean, Portuguese, Russian, Simplified Chinese and Traditional Chinese
  • Released an updated excelize-wasm NPM package for WebAssembly / JavaScript support
  • Released an updated excelize-py PyPI package for Python
  • Released an updated ExcelizeCs NuGet package for C# / .NET
4 Likes

Thanks for the all the hard work on Excelize. I appreciate it.

Amazing library I use in every other project. Once you get the hang of some performance quirks and different methods it is invaluable for working with spreadsheets.

One question I asked myself: Is there a reason why the library does not expose a simple getCellValue[T]() method to get the unformatted underlying value of a cell instead of the string-formatted value ?