|
| 1 | +# Excelize v2.11.0 |
| 2 | + |
| 3 | +* Will be released: July 7, 2026 |
| 4 | + |
| 5 | +## Release Notes |
| 6 | + |
| 7 | +The most notable changes in this release are: |
| 8 | + |
| 9 | +### Breaking Change |
| 10 | + |
| 11 | +* Upgraded requirement: Go language version is 1.25.0 or later, due to upgrading dependency package `golang.org/x/net` |
| 12 | +* Breaking changes for the `AddChart`, `AddChartSheet` and `AddShape` functions |
| 13 | + * Change `Title` field data type of `Chart` from `[]RichTextRun` to `ChartTitle` |
| 14 | + * Change `Line` field data type of `Shape` from `ShapeLine` to `LineOptions` |
| 15 | + * Renamed data type `ChartDashType` to `LineDashType` |
| 16 | + * Renamed data type `ChartLineType` to `LineType` |
| 17 | + * Renamed data type `ChartLine` to `LineOptions` |
| 18 | + |
| 19 | +### Security |
| 20 | + |
| 21 | +* Check row number when reading worksheet to prevent unbounded memory allocation (CVE-2026-54063), related security advisories [#GHSA-h69g-9hx6-f3v4](https://github.com/xuri/excelize/security/advisories/GHSA-h69g-9hx6-f3v4) |
| 22 | +* Prevent attacker-controlled allocations by validating against worksheet row number overflow maximum limitation (CWE-400 and CWE-770), related security advisories [#GHSA-q5j5-6p94-4gwc](https://github.com/xuri/excelize/security/advisories/GHSA-q5j5-6p94-4gwc) |
| 23 | +* Prevent panic on getting cell value with invalid shared string table index (CWE-248 and CWE-755), related security advisories [#GHSA-fx5j-qcqg-grpf](https://github.com/xuri/excelize/security/advisories/GHSA-fx5j-qcqg-grpf) |
| 24 | + |
| 25 | +### Notable Features |
| 26 | + |
| 27 | +* Added new `ChartTitle` data type |
| 28 | +* Added new `PivotTableShowValuesAs` data type |
| 29 | +* Added new `PivotTableShowValuesAsType` enumeration |
| 30 | +* Added 3 new exported error variables: `ErrPivotTableShowValuesAsBaseField`, `ErrPivotTableShowValuesAsBaseItem` and `ErrUnsupportedPivotTableShowValuesAsType` |
| 31 | +* Added new field `ShowValuesAs` in `PivotTableField` data type |
| 32 | +* Added new field `SelectedItems` in `PivotTableOptions` and `SlicerOptions` data types |
| 33 | +* Added new function `AutoFitColWidth` to support auto fit columns width, related issue [#92](https://github.com/xuri/excelize/issues/92) |
| 34 | +* The `CalcCellValue` function supports tilde wildcard criteria |
| 35 | +* The `CalcCellValue` function supports implicit intersection and fixes regex criteria anchoring |
| 36 | +* The `CalcCellValue` function supports 3D references across sheet ranges, related issue [#2303](https://github.com/xuri/excelize/issues/2303) |
| 37 | +* The `CalcCellValue` function supports returning formula calculation result with raw cell value, related issue [#2316](https://github.com/xuri/excelize/issues/2316) |
| 38 | +* The `AddPivotTable` function supports checking whether the same data field appears in pivot table column, rows and filter fields, to prevent generating a corrupted workbook |
| 39 | +* The `AddPivotTable` and `GetPivotTables` functions support setting and getting show values as of pivot table data fields, related issue [#2340](https://github.com/xuri/excelize/issues/2340) |
| 40 | +* The `AddPivotTable`, `AddSlicer`, `GetPivotTables` and `GetSlicers` functions support setting and getting selected items for pivot table and pivot table slicer, related issue [#2154](https://github.com/xuri/excelize/issues/2154) |
| 41 | +* The `AddChart` and `AddChartSheet` functions support setting chart title with formula |
| 42 | +* The `AddChart` and `AddChartSheet` functions support setting chart title and chart axis title's layout |
| 43 | +* The `AddChart` and `AddChartSheet` functions support setting line format for chart title and chart axis title |
| 44 | +* The `AddShape` function supports setting line format of shapes |
| 45 | +* The `NewStyle` function supports auto foreground and background color when creating solid fill style when no custom color value is specified |
| 46 | + |
| 47 | +### Compatibility Improvements |
| 48 | + |
| 49 | +* Fixed chart sheet not showing charts on Excel Online and WPS, related issue [#2273](https://github.com/xuri/excelize/issues/2273) |
| 50 | + |
| 51 | +### Bug Fixes |
| 52 | + |
| 53 | +* Fixed a v2.8.1 regression issue [#1383](https://github.com/xuri/excelize/issues/1383) |
| 54 | +* Fixed `AddChart` function panic when adding a chart with no fill series |
| 55 | +* Fixed `CalcCellValue` function panic on invalid row reference in some cases, resolved issue [#2266](https://github.com/xuri/excelize/issues/2266) |
| 56 | +* Fixed formula exact text matching not matching substrings when using `CalcCellValue` function |
| 57 | +* Fixed `CalcCellValue` function calculation accuracy issue for formula functions BINOM.INV, CHIINV, CHISQ.DIST, IMSECH, IMSQRT and NEGBINOM.DIST |
| 58 | +* Fixed `CalcCellValue` function returning incorrect calculation result of FREQUENCY in some cases |
| 59 | +* Fixed `AddComment` function assigning incorrect author ID for all comments when author already exists in authors list, resolved issue [#2289](https://github.com/xuri/excelize/issues/2289) |
| 60 | +* Fixed potential deadlock related to file unlocker not being called before returning an error |
| 61 | +* Fixed custom number format with comma scaling not properly applied, resolved issue [#2297](https://github.com/xuri/excelize/issues/2297) |
| 62 | +* Fixed panic on reading corrupted workbook containing invalid worksheet XML by column iterator, resolved issue [#2299](https://github.com/xuri/excelize/issues/2299) |
| 63 | +* Fixed missing single quote after adjusting formulas which include external references |
| 64 | +* Fixed failure to decrypt workbooks protected by ECMA-376 agile encryption with SHA512 hash algorithm in some cases, resolved issue [#2328](https://github.com/xuri/excelize/issues/2328) |
| 65 | +* Fixed `SetCellFormula` function not clearing shared formula metadata when overwriting with a normal formula, resolved issue [#2337](https://github.com/xuri/excelize/issues/2337) |
| 66 | + |
| 67 | +### Performance |
| 68 | + |
| 69 | +* Reduced memory usage for reading unencrypted workbooks, reducing rows iterator memory usage by at most 85% |
| 70 | +* Optimized the coordinates conversion and some internal functions performance |
| 71 | + * The `ColumnNumberToName` function memory allocation reduced by about 90% |
| 72 | + * The `CoordinatesToCellName` function memory allocation reduced by about 13% |
| 73 | + * The internal `isNumeric` function memory allocation reduced by about 68% |
| 74 | + |
| 75 | +### Miscellaneous |
| 76 | + |
| 77 | +* The dependencies module has been updated |
| 78 | +* Unit tests and godoc updated |
| 79 | +* [Documentation website](https://xuri.me/excelize) with multilingual: Arabic, German, English, Spanish, French, Italian, Japanese, Korean, Portuguese, Russian, Chinese Simplified and Chinese Traditional, which has been updated. |
| 80 | +* [excelize-wasm](https://github.com/xuri/excelize-wasm) NPM package release update for WebAssembly / JavaScript support |
| 81 | +* [excelize](https://github.com/xuri/excelize-py) PyPI package release update for Python |
| 82 | +* [ExcelizeCs](https://github.com/xuri/excelize-cs) NuGet .Net package release for C# |
| 83 | + |
| 84 | +### Thank you |
| 85 | + |
| 86 | +Thanks for all the contributors to Excelize. Below is a list of contributors that have code contributions in this version: |
| 87 | + |
| 88 | +* @Rynzie02 (Rynzie) |
| 89 | +* @jpoz (James Pozdena) |
| 90 | +* @tvso (Tammy) |
| 91 | +* @yyt030 (yyt) |
| 92 | +* @hwo411 (Igor Khodyrev) |
| 93 | +* @JimLee0921 (TuoLee) |
| 94 | +* @zhuyanhuazhuyanhua (zhuhua) |
| 95 | +* @kenny-not-dead (Roman Sergeev) |
| 96 | +* @debugdoctor (Debug Doctor) |
| 97 | +* @Journeyman150 (Vladislav Anisimov) |
| 98 | +* @ivolkoff (Ivan Volkov) |
| 99 | +* @plandem (Andrey G.) |
| 100 | +* @martskins |
| 101 | +* @shcabin |
| 102 | +* @narasaka (Nathanael Tehilla Gunawan) |
| 103 | +* @lawrence3699 (chaoliang yan) |
| 104 | +* @SAY-5 (Sai Asish Y) |
| 105 | +* @noahchiu22 (Noah) |
| 106 | +* @rootsec1 (Abhishek Murthy) |
| 107 | +* @guangxuewu |
| 108 | +* @AdamDrewsTR (Adam Drews) |
| 109 | +* @grmblfrz (Swen Thümmler) |
| 110 | +* @WaterRRabbit |
| 111 | +* @krystophny (Christopher Albert) |
| 112 | +* @Aprax14 (Damiano Scarpellini) |
| 113 | +* @artur-chopikian (Artur Chopikian) |
0 commit comments