登录

精华分享一个开源的电子表格文档基础库 Excelize,发布了 2.11.1 版本更新

474
  • 楼主 编辑于

    Excelize 是开源的用于操作 Office Excel 文档基础库,基于 ECMA-376,ISO/IEC 29500 国际标准。可以使用它来读取、写入由 Excel、WPS、OpenOffice 等办公软件创建的电子表格文档。支持 XLAM / XLSM / XLSX / XLTM / XLTX 等多种文档格式,高度兼容带有样式、图片 (表)、透视表、切片器等复杂组件的文档,并提供流式读写支持,用于处理包含大规模数据的工作簿。可应用于各类报表平台、云计算、边缘计算等系统。希望能够帮助到有需要的朋友~

    开源代码

    GitHub: github.com/xuri/excelize

    中文简体字文档: xuri.me/excelize/zh-hans

    2026 年 11 月 2 日,社区正式发布了 2.11.1 版本,该版本包含 30 余项更新,包括新增功能、错误修复、安全加固和兼容性提升优化。来自世界各地的 30 名开发者为此版本贡献了代码。下面是有关该版本更新内容的摘要,此版本中最显著的变化包括:

    此版本中最显著的变化包括:

    兼容性提示

    • 升级 Go 语言版本要求至 1.26.0 或更高版本,以升级依赖包 golang.org/x/crypto

    安全更新

    • 修复当共享字符串索引为负数时获取单元格值引发程序 panic 的问题 (CVE-2026-104819),相关安全公告 GHSA-48hm-4h8j-58fg
    • 修复 GetPivotTables 函数在数据透视表字段索引无效时引发程序 panic 的问题 (CVE-2026-107211),相关安全公告 GHSA-mx22-3794-2vpv
    • 修复行迭代器对行号无限制的问题 (CVE-2026-107212),相关安全公告 GHSA-jw42-f3rr-4cc3
    • 修复 GetSlicers 函数从不含绘图部件的工作表中获取切片器时引发程序 panic 的问题 (CVE-2026-107213),相关安全公告 GHSA-r7x5-4969-99p7
    • 修复解密格式错误的工作簿时引发程序 panic 的问题 (CVE-2026-107214),相关安全公告 GHSA-2j4c-ffch-9f23
    • 修复解密工作簿时无限制分配 EncryptionInfo 和 EncryptedPackage 流大小的问题 (CVE-2026-107215),相关安全公告 GHSA-x2q3-8cjh-766f
    • 修复 CalcCellValue 函数因 ANCHORARRAY 公式循环引用导致栈溢出的问题 (CVE-2026-107216),相关安全公告 GHSA-wp2g-vpjj-g53r
    • 修复 ColumnNameToNumber 和 JoinCellName 函数接受无效列名而导致整数溢出的问题 (CVE-2026-107217),相关安全公告 GHSA-c85p-xxjj-2r75
    • 修复 LEFT、LEFTB、RIGHT 和 RIGHTB 公式函数中 Unicode 处理和字符数溢出的问题 (CVE-2026-107218),相关安全公告 GHSA-8jjq-8j9w-m2v6
    • 修复解密带有敏捷加密算法的工作簿时,密钥自旋次数无限制的问题 (CVE-2026-107219),相关安全公告 GHSA-jrfj-fhj2-jjvm
    • 修复工作表中存在空合并单元格引用时引发程序 panic 的问题 (CVE-2026-107220),相关安全公告 GHSA-g27h-8qhm-6pff
    • 修复行内单元格未按列升序排列时引发程序 panic 的问题 (CVE-2026-107221),相关安全公告 GHSA-8mcq-6wmr-jrjv
    • 修复 GetConditionalFormats 函数在条件格式规则格式错误时引发程序 panic 的问题 (CVE-2026-107222),相关安全公告 GHSA-rxcj-4pj5-74gr
    • 修复最小和最大列名称溢出的问题 (CVE-2026-107223),相关安全公告 GHSA-fq3v-74gv-27gm
    • 修复因解压大小溢出导致打开工作簿引发程序 panic 的问题 (CVE-2026-107224),相关安全公告 GHSA-fw94-4wwp-w8pw
    • 修复使用负数样式索引获取样式时引发程序 panic 的问题 (CVE-2026-107225),相关安全公告 GHSA-5h23-36rv-pm65

    新增功能

    • 新增 EmbeddedObject 数据类型
    • 新增 2 个常量:MaxCFBStreamSizeV3 和 MaxCFBStreamSizeV4
    • 新增 GetShapes 函数,支持获取形状,相关 issue #436
    • 新增 GetEmbeddedObjects 和 SetGetEmbeddedObject 函数,支持获取和设置嵌入对象,相关 issue #158 和 #2186
    • CalcCellValue 函数支持计算带有数组公式参数的 AND 公式函数
    • SetConditionalFormat 函数支持验证样式索引,相关 issue #2400

    兼容性提升

    • 函数 SetCellValue 存储数值的精度与 Microsoft Excel™一致,相关 issue #1757

    问题修复

    • 修复 GetPictures 函数在某些情况下未返回图片位置属性的问题,解决 issue #2217
    • 修复 CalcCellValue 函数计算括号或运算符内包含错误值的公式时,返回错误计算结果的问题,解决 issue #1164 和 #2344
    • 修复 CalcCellValue 函数在某些情况下未返回预期错误的问题,解决 issue #2349 和 #2432
    • 修复 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 的问题,解决 issue #2409
    • 修复 CalcCellValue 函数计算含有无效参数的 AVERAGEIFS、COUNTIFS、MAXIFS、MINIFS、PERCENTILE.EXC 和 SUMIFS 公式函数时引发程序 panic 的问题,解决 issue #2426
    • 修复 AddChart 和 AddChartSheet 函数在某些情况下生成无效图表导致工作簿损坏的问题,解决 issue #2355 和 #2356
    • 修复流式写入器未对时间间隔类型的单元格值应用数字格式的问题,解决 issue #2371
    • 修复使用 time.Duration 数据类型的值设置单元格值时精度丢失的问题,解决 issue #2372
    • 修复 AddSlicer 函数为数据透视表的不同字段重复使用相同切片器缓存的问题,解决 issue #2383
    • 修复 GetStyle 函数对无图案填充返回无效样式的问题,解决 issue #2384
    • 修复 GetFormControls 和 GetTables 函数无法获取工作簿内部带有绝对路径部件的表单控件和表格的问题,解决 issue #2386
    • 修复 GetPanes 函数在某些情况下无法获取拆分窗格的问题,解决 issue #2387
    • 修复 SetCalcProps 函数无法将计算属性设置为 false 的问题,相关 issue #2404
    • 修复 ExcelDateToTime 函数转换 1900 年 1 月和 2 月的日期时,结果提前一天的问题,解决 issue #2466

    其他

    • Go Modules 依赖模块更新
    • 单元测试与文档更新
    • 包含阿拉伯语、德语、英语、西班牙语、法语、意大利语、日语、韩语、葡萄牙语、俄语、简体中文和繁体中文的多国语言文档网站更新
    • 支持 WebAssembly / JavaScript 的 excelize-wasm NPM 包发布版本更新
    • 支持 Python 的 excelize-py PyPI 包发布版本更新
    • 支持 C# 的 ExcelizeCs NuGet .Net 包发布版本更新

    致谢

    感谢 Excelize 的所有贡献者,以下是为此版本提交代码的贡献者列表:

    • Aprax14 (Damiano Scarpellini)
    • xixixi1118
    • zhouxuanyu1204-bot (ZHOU XUANYU)
    • lzoeydzdnn
    • arpitjain099 (Arpit Jain)
    • n0liu (Roland)
    • 1436761858 (LP-LDY)
    • yashisrani (Yash Israni)
    • alliasgher (Ali Asghar)
    • ensiouel
    • a3190778733-pixel (shixia)
    • Nayjest (Vitalii Stepanenko)
    • ValeryVerkhoturov (Valery)
    • freeeve (Eve Freeman)
    • saifulferoz (Feroz)
    • lmonstergg
    • pcvelz (Peter van Velzen)
    • askalf (Thomas Sprayberry)
    • zac-scheiwe (Zac Scheiwe)
    • lrweck (Luis)
    • akashchamp
    • PhilflowIO (Philipp Lütje)
    • White0xdi3 (Jnyandeep Koyya)
    • keithadler (Keith Adler)
    • EpicHigh (Prasit Tongpradit)
    • wangyica879112 (ChangAo)
    • yl030628 (YL)
    • prostomarkeloff (prostomarkeloff)
    • Gabik21
    • Alifarid0011 (AliFarid)
    收藏支持反对打赏

4 条回复

发表回复