☰
excelize v2.11.1发布:Go 1.26.0起步,16项安全修复与嵌入对象能力全面升级
2026/11/4 2:35:27 网站建设 项目流程

2026年11月2日,excelize 发布 v2.11.1 版本。本次更新涵盖多项功能增强、大量缺陷修复,以及一批重要的安全问题修复。对于正在使用 excelize 处理电子表格文件、公式计算、图表、透视表、切片器、加密工作簿和流式写入等能力的开发者而言,v2.11.1 是一个覆盖范围较广的版本。

本次版本最值得关注的变化包括:Go 语言最低版本要求升级至 Go 1.26.0;新增嵌入对象相关数据类型与读写能力;新增形状读取能力;改进条件格式校验;优化单元格数值精度;修复公式计算、图表生成、日期转换、样式读取、切片器、表格、窗格等多个方面的问题。

同时,v2.11.1 集中修复了多项与异常文件、索引越界、整数溢出、内存分配、栈溢出和 panic 相关的安全问题。这些修复涉及共享字符串、透视表、行迭代器、切片器、工作簿解密、数组公式、列名解析、文本公式函数、合并单元格、条件格式、样式索引等多个功能区域。


版本基本信息

  • 版本号:v2.11.1
  • 发布时间:2026年11月2日
  • 更新内容:新功能、安全修复、兼容性改进、缺陷修复、依赖更新、测试与文档更新
  • 文档站点:支持阿拉伯语、德语、英语、西班牙语、法语、意大利语、日语、韩语、葡萄牙语、俄语、简体中文和繁体中文,共 12 种语言
  • 同步更新组件:
    • excelize-wasm NPM 包,用于 WebAssembly / JavaScript 支持
    • excelize-py PyPI 包,用于 Python
    • ExcelizeCs NuGet 包,用于 C# / .NET

重要破坏性变更:Go 版本要求升级

v2.11.1 带来了一项需要优先评估的破坏性变更。

excelize 的 Go 语言版本要求已升级为:

  • Go 1.26.0 或更高版本

这一变更的原因是升级了依赖包golang.org/x/crypto。

对于使用较低 Go 版本的项目,在升级 excelize 至 v2.11.1 前,需要确认构建环境、持续集成环境以及本地开发环境是否已经满足 Go 1.26.0 或更高版本的要求。否则,项目可能无法完成依赖解析、编译或构建。


安全修复:集中处理 panic、溢出、异常分配与异常输入

v2.11.1 的安全修复覆盖多个工作簿解析与计算场景,尤其针对恶意构造、格式异常或索引非法的电子表格文件进行了加固。

修复负共享字符串索引导致的 panic

在获取单元格值时,如果共享字符串索引为负数,可能触发 panic。v2.11.1 修复了这一问题。

  • CVE:CVE-2026-104819
  • 相关安全公告:GHSA-48hm-4h8j-58fg

共享字符串是电子表格文件中常见的数据组织方式。针对负索引的处理加固,有助于避免在读取异常工作簿时出现程序崩溃。

修复无效透视表字段索引导致的 GetPivotTables panic

当透视表字段索引无效时,调用GetPivotTables可能触发 panic。v2.11.1 对此进行了修复。

  • CVE:CVE-2026-107211
  • 相关安全公告:GHSA-mx22-3794-2vpv

该修复提升了读取包含异常透视表字段信息的工作簿时的稳定性。

修复行迭代器中未受限制的行号问题

行迭代器此前存在未受限制的行号问题,v2.11.1 已修复。

  • CVE:CVE-2026-107212
  • 相关安全公告:GHSA-jw42-f3rr-4cc3

这一修复涉及行迭代过程中的边界控制,避免异常行号带来不符合预期的处理结果。

修复工作表缺少绘图部件时 GetSlicers 的 panic

当从不包含绘图部件的工作表中获取切片器时,GetSlicers可能触发 panic。v2.11.1 修复了这一问题。

  • CVE:CVE-2026-107213
  • 相关安全公告:GHSA-r7x5-4969-99p7

切片器与工作表中的绘图部件存在关联,该修复使相关读取逻辑能够更好地处理不完整或异常的工作表结构。

修复解密格式异常工作簿时的 panic

对格式异常的工作簿执行解密操作时,可能发生 panic。v2.11.1 已修复该问题。

  • CVE:CVE-2026-107214
  • 相关安全公告:GHSA-2j4c-ffch-9f23

这项修复强化了加密工作簿解密场景对异常输入数据的处理能力。

修复解密时 EncryptionInfo 与 EncryptedPackage 流大小无限制分配问题

在解密工作簿时,EncryptionInfo和EncryptedPackage流的大小此前可能被无限制分配。v2.11.1 修复了该问题。

  • CVE:CVE-2026-107215
  • 相关安全公告:GHSA-x2q3-8cjh-766f

该修复针对加密工作簿流数据的大小控制进行了改进,避免异常流大小导致不受限制的内存分配。

修复循环 ANCHORARRAY 公式引用导致的 CalcCellValue 栈溢出

当ANCHORARRAY公式引用形成循环关系时,CalcCellValue可能发生栈溢出。v2.11.1 已完成修复。

  • CVE:CVE-2026-107216
  • 相关安全公告:GHSA-wp2g-vpjj-g53r

公式计算是 excelize 的重要能力之一。该修复针对循环数组引用场景,避免计算过程中出现栈溢出。

修复无效列名被 ColumnNameToNumber 和 JoinCellName 接受导致的整数溢出

ColumnNameToNumber和JoinCellName此前可能接受无效列名,并由此引发整数溢出。v2.11.1 已修复。

  • CVE:CVE-2026-107217
  • 相关安全公告:GHSA-c85p-xxjj-2r75

通过加强列名合法性校验,版本更新避免了无效列标识进入后续计算流程。

修复 LEFT、LEFTB、RIGHT、RIGHTB 公式函数中的 Unicode 处理和计数溢出问题

公式函数LEFT、LEFTB、RIGHT和RIGHTB在 Unicode 处理及计数方面存在溢出问题,v2.11.1 已修复。

  • CVE:CVE-2026-107218
  • 相关安全公告:GHSA-8jjq-8j9w-m2v6

该修复与文本截取公式函数相关,覆盖 Unicode 场景及计数溢出问题。

修复敏捷解密密钥派生时未受限制的旋转计数问题

在派生敏捷解密密钥时,旋转计数此前可能不受限制。v2.11.1 已修复。

  • CVE:CVE-2026-107219
  • 相关安全公告:GHSA-jrfj-fhj2-jjvm

该修复进一步增强了解密处理流程中的边界控制。

修复空合并单元格引用导致的 panic

当工作表中存在空的合并单元格引用时,可能触发 panic。v2.11.1 已修复。

  • CVE:CVE-2026-107220
  • 相关安全公告:GHSA-g27h-8qhm-6pff

合并单元格是常见的工作表结构,该修复使空引用场景能够得到正确处理。

修复行中单元格列顺序非升序导致的 panic

如果某一行中的单元格没有按照列顺序升序排列,可能发生 panic。v2.11.1 已修复该问题。

  • CVE:CVE-2026-107221
  • 相关安全公告:GHSA-8mcq-6wmr-jrjv

该修复针对工作表行数据中列顺序异常的场景进行了处理。

修复格式异常条件格式规则导致的 GetConditionalFormats panic

面对格式异常的条件格式规则时,GetConditionalFormats可能触发 panic。v2.11.1 已修复。

  • CVE:CVE-2026-107222
  • 相关安全公告:GHSA-rxcj-4pj5-74gr

条件格式读取能力在本次版本中同时获得了安全性与校验能力上的改进。

修复最小和最大列号溢出

最小列号和最大列号此前存在溢出问题,v2.11.1 已修复。

  • CVE:CVE-2026-107223
  • 相关安全公告:GHSA-fq3v-74gv-27gm

列号边界处理得到增强,可避免极端列号数据带来的溢出风险。

修复 Zip64 未压缩大小无法放入有符号 int64 时的 panic

当 Zip64 的未压缩大小无法放入有符号int64时,可能触发 panic。v2.11.1 通过拒绝这类大小值修复了问题。

  • CVE:CVE-2026-107224
  • 相关安全公告:GHSA-fw94-4wwp-w8pw

该修复涉及压缩包数据处理中的大小校验。

修复负样式索引导致的 GetStyle panic

获取样式时,如果样式索引为负数,可能导致 panic。v2.11.1 已修复。

  • CVE:CVE-2026-107225
  • 相关安全公告:GHSA-5h23-36rv-pm65

该问题与工作簿样式读取过程相关,修复后可以更稳妥地处理异常样式索引。


重点新功能:嵌入对象、形状读取与公式能力扩展

除了安全修复,v2.11.1 还新增和扩展了多项功能。

新增 EmbeddedObject 数据类型

v2.11.1 新增EmbeddedObject数据类型。

这一新增数据类型为嵌入对象相关能力提供了数据支持。

新增 MaxCFBStreamSizeV3 和 MaxCFBStreamSizeV4 常量

本次版本新增两个常量:

  • MaxCFBStreamSizeV3
  • MaxCFBStreamSizeV4

这两个常量与 CFB 流大小相关。

新增 GetShapes 函数,支持获取形状

v2.11.1 新增GetShapes函数,用于支持获取形状。

该功能关联 issue436。

形状是工作表内容中的一个重要组成部分。新增GetShapes后,excelize 增加了对形状信息的读取支持。

新增 GetEmbeddedObjects 和 SetGetEmbeddedObject 函数,支持获取和设置嵌入对象

本次版本新增以下函数:

  • GetEmbeddedObjects
  • SetGetEmbeddedObject

这些函数用于支持获取和设置嵌入对象。

相关 issue:

  • 158
  • 2186

嵌入对象能力的加入,使 excelize 在工作簿内容处理范围上进一步扩展。

CalcCellValue 的 AND 公式函数支持矩阵参数

CalcCellValue现在支持AND公式函数中的矩阵参数。

这意味着在计算AND公式时,v2.11.1 增加了对矩阵参数场景的支持。

SetConditionalFormat 现在校验样式索引

SetConditionalFormat现在会校验样式索引。

该更新关联 issue2400。

条件格式设置过程中增加样式索引校验,有助于避免使用无效样式索引。


兼容性改进:SetCellValue 数值精度与 Microsoft Excel 对齐

v2.11.1 对SetCellValue写入数值时的精度进行了调整,使其与 Microsoft Excel 中存储数值的精度保持一致。

相关 issue:

  • 1757

这一改进属于兼容性增强,使通过SetCellValue存储的数值在精度表现上与 Microsoft Excel 对齐。


缺陷修复:图片、公式、图表、时长、切片器、样式与窗格

本次版本还修复了一批功能性问题,涉及图片读取、公式计算、图表生成、流式写入、时长精度、切片器、样式、控件、表格、窗格、计算属性和日期转换等内容。

修复 GetPictures 在部分场景未返回编辑定位信息的问题

GetPictures在某些情况下未返回编辑定位信息的问题已修复。

相关 issue:

  • 2217

修复 CalcCellValue 在括号或运算符内出现错误值时返回结果不正确的问题

当错误值出现在括号或运算符内部时,CalcCellValue可能返回错误结果。v2.11.1 已修复。

相关 issue:

  • 1164
  • 2344

修复 CalcCellValue 在某些情况下未返回预期错误的问题

CalcCellValue在部分场景下未能返回预期错误的问题已修复。

相关 issue:

  • 2349
  • 2432

修复 CalcCellValue 在 16 个公式函数中返回错误结果的问题

v2.11.1 修复了CalcCellValue在以下 16 个公式函数中可能返回错误结果的问题:

  • COUNT
  • COUNTA
  • EDATE
  • HLOOKUP
  • IF
  • INDIRECT
  • ISNUMBER
  • MDETERM
  • MINVERSE
  • OR
  • SUM
  • TRIM
  • VALUE
  • VLOOKUP
  • WEEKDAY
  • XLOOKUP

相关 issue:

  • 2411
  • 2412
  • 2413
  • 2414
  • 2415
  • 2416
  • 2417
  • 2430
  • 2436
  • 2439
  • 2445

公式计算能力是本次修复的重点区域之一。上述函数覆盖计数、日期、水平查找、条件判断、间接引用、类型判断、矩阵计算、逻辑判断、求和、文本处理、数值转换、垂直查找、星期计算和查找引用等多个类别。

修复 CalcCellValue 在公式右括号不平衡时的 panic

当公式中存在不平衡的右括号时,CalcCellValue可能触发 panic。该问题已修复。

相关 issue:

  • 2409

修复 CalcCellValue 在多个函数参数无效时的 panic

当以下公式函数使用无效参数进行计算时,CalcCellValue可能发生 panic:

  • AVERAGEIFS
  • COUNTIFS
  • MAXIFS
  • MINIFS
  • PERCENTILE.EXC
  • SUMIFS

v2.11.1 已修复。

相关 issue:

  • 2426

修复 AddChart 和 AddChartSheet 在部分场景生成无效图表并损坏工作簿的问题

AddChart和AddChartSheet在某些情况下可能生成无效图表,进而导致工作簿损坏。v2.11.1 已修复。

相关 issue:

  • 2355
  • 2356

图表生成是工作簿写入流程中的重要能力,本次修复解决了特定场景下无效图表导致工作簿损坏的问题。

修复流式写入器未对 duration 单元格值应用数字格式的问题

流式写入器此前未对duration单元格值应用数字格式,v2.11.1 已修复。

相关 issue:

  • 2371

修复使用 time.Duration 设置单元格值时的精度丢失问题

通过time.Duration设置单元格值时,可能存在精度丢失。v2.11.1 已修复。

相关 issue:

  • 2372

这一修复与时长类型单元格值的精度处理相关。

修复 AddSlicer 为不同字段复用透视表切片器缓存的问题

AddSlicer此前可能为不同字段复用透视表切片器缓存。该问题已修复。

相关 issue:

  • 2383

修复 GetStyle 对没有模式的填充返回无效样式的问题

当填充没有模式时,GetStyle可能返回无效样式。v2.11.1 已修复。

相关 issue:

  • 2384

修复工作簿使用绝对路径时 GetFormControls 和 GetTables 无法获取表单控件和表格的问题

当工作簿使用绝对路径时,GetFormControls和GetTables可能无法获取表单控件和表格。该问题已修复。

相关 issue:

  • 2386

修复 GetPanes 在部分场景无法获取拆分窗格的问题

GetPanes在某些情况下无法获取拆分窗格的问题已修复。

相关 issue:

  • 2387

修复 SetCalcProps 无法将计算属性设置为 false 的问题

SetCalcProps此前无法将计算属性设置为false,v2.11.1 已修复。

相关 issue:

  • 2404

修复 ExcelDateToTime 在 1900 年 1 月和 2 月日期提前一天的问题

ExcelDateToTime对 1900 年 1 月和 2 月的日期转换可能提前一天。该问题已修复。

相关 issue:

  • 2466

依赖、测试、文档与多语言生态更新

v2.11.1 同步更新了依赖项。

此外,本次版本还更新了单元测试和 godoc。

文档网站也完成更新,目前提供 12 种语言版本:

  • 阿拉伯语
  • 德语
  • 英语
  • 西班牙语
  • 法语
  • 意大利语
  • 日语
  • 韩语
  • 葡萄牙语
  • 俄语
  • 简体中文
  • 繁体中文

在相关生态组件方面,v2.11.1 同步发布了更新版本:

  • 更新 excelize-wasm NPM 包,为 WebAssembly / JavaScript 提供支持
  • 更新 excelize-py PyPI 包,为 Python 提供支持
  • 更新 ExcelizeCs NuGet 包,为 C# / .NET 提供支持

总结

代码地址:github.com/qax-os/excelize

excelize v2.11.1 是一次覆盖安全性、功能性、兼容性和稳定性的更新。

破坏性变更方面,Go 语言最低要求升级至 Go 1.26.0 或更高版本,原因是依赖golang.org/x/crypto升级。

安全性方面,版本修复了共享字符串负索引、透视表字段索引、行迭代器行号、切片器绘图部件、异常工作簿解密、加密流大小、循环ANCHORARRAY引用、无效列名、文本公式函数、敏捷解密旋转计数、空合并单元格引用、单元格列顺序、条件格式规则、列号边界、Zip64 大小和负样式索引等问题。

功能方面,新增EmbeddedObject数据类型、MaxCFBStreamSizeV3和MaxCFBStreamSizeV4常量、GetShapes函数,以及GetEmbeddedObjects和SetGetEmbeddedObject函数;CalcCellValue中的AND公式函数新增矩阵参数支持;SetConditionalFormat增加样式索引校验。

兼容性方面,SetCellValue存储数值的精度已与 Microsoft Excel 对齐。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询