Excelize开源基础库2.10.1版本更新,有哪些新特性或改进?
摘要:2026年2月25日,社区正式发布了 2.10.1 版本,该版本包含 40 余项更新,包括新增功能、错误修复和兼容性提升优化。来自世界各地的 29 名开发者为此版本贡献了代码。本文是有关该版本更新内容的摘要。
Excelize 是 Go 语言编写的用于操作 Office Excel 文档基础库,基于 ECMA-376,ISO/IEC 29500 国际标准。可以使用它来读取、写入由 Excel、WPS、OpenOffice 等办公软件创建的电子表格文档。支持 XLAM / XLSM / XLSX / XLTM / XLTX 等多种文档格式,高度兼容带有样式、图片(表)、透视表、切片器等复杂组件的文档,并提供流式读写支持,用于处理包含大规模数据的工作簿。可应用于各类报表平台、云计算、边缘计算等系统。自 2016 年开源以来已成为开发者在处理电子表格办公文档时的热门选择,正在被广泛应用于大型互联网公司、中小企业客户和初创公司。荣获 2025 上海开源创新菁英奖、入选 2023 开源创新榜优秀开源项目、荣获 2022 年中国开源创新大赛一等奖、2020 Gopher China - Go 领域明星开源项目 (GSP)、2018 年开源中国码云最有价值开源项目 GVP (Gitee Most Valuable Project)。
开源代码
GitHub: github.com/xuri/excelize
中文简体字文档: xuri.me/excelize/zh-hans
2026年2月25日,社区正式发布了 2.10.1 版本,该版本包含 40 余项更新,包括新增功能、错误修复和兼容性提升优化。来自世界各地的 29 名开发者为此版本贡献了代码。下面是有关该版本更新内容的摘要,此版本中最显著的变化包括:
兼容性提示
移除了 3 个导出的错误变量:ErrStreamSetColStyle、ErrStreamSetColWidth 和 ErrStreamSetPanes
新增功能
新增 ChartDataPoint 数据类型
在 ChartSeries 数据类型中新增 DataPoint 字段
在 ChartAxis 数据类型中新增 DropLines 和 HighLowLines 字段
在 GraphicOptions 数据类型中新增 Name 字段
在 ChartSeries 数据类型中新增 DataPoint 字段
新增 2 个常量:MaxGraphicAltTextLength 和 MaxGraphicNameLength
新增 7 个导出的错误变量:ErrFillType、ErrFillGradientColor、ErrFillGradientShading、ErrFillPatternColor、ErrFillPattern、ErrMaxGraphicAltTextLength 和 ErrMaxGraphicNameLength
新增 GetHyperLinkCells 函数,支持获取包含超链接的单元格,相关 issue 1607
新增 GetSheetProtection 函数,支持获取工作表保护设置
当向已存在批注的单元格添加批注时,AddComment 函数将返回错误
支持插入 ICO 格式图片,相关 issue 2234
新增 2 项公式函数:SORTBY 和 UNIQUE
添加图表时支持为圆环图、饼图和三维饼图设置数据点颜色,相关 issue 1904
添加图表时支持为东亚文字与复杂文字脚本设置字体
添加图表时支持为面积图和折线图设置下垂线与高低线
获取图片时支持返回部分图片格式属性,相关 issue 2157
新增流式设置列可见性功能,相关 issue 2075
新增流式设置列的分级显示功能,相关 issue 2212
添加形状和添加切片器时,支持将形状与切片器设置为单一单元格锚定类型
获取切片器时支持获取单一单元格锚定类型的切片器
支持设置与获取“3 个三角形”、“3 颗星”和“5 个方框”类型的图标集条件格式,相关 issue 2038
删除条件格式和删除数据验证时,支持从一个大的单元格范围中删除指定单元格范围内的条件格式或数据验证,而保留其余单元格范围内的条件格式或数据验证
添加图片时支持设置图片的名称
添加图表或插入形状时,支持为图表或形状设置名称与替代文本
添加切片器时支持为切片器设置替代文本
支持校验图形名称与替代文本的长度,当长度超过限制时将会返回错误
支持以 UTF-16 方式检查并截断文本长度
兼容性提升
保存工作簿时将自动移除无效的空行,减少生成的工作簿文件大小
问题修复
修复 v2.10.0 中引入的问题,解决 GetCellValue 与 GetRows 函数在某些情况下读取空白单元格时,错误地返回了共享字符串索引,相关 issue 2240
修复 GetPivotTables 函数在部分情况下获取数据透视表时发生 panic 的问题
修复部分情况下,读取带有中文月份名称数字格式的单元格时,发生 panic 的问题,相关 issue 2224
修复部分情况下,打开带有密码保护的加密工作簿时,发生 panic 的问题,相关 issue 2237
修复使用流式写入器 SetRow 函数时,列样式缺失的问题
修复获取图片时,未包含部分单元格图片的问题
修复由浅色主题颜色索引溢出导致的,部分情况下生成的工作簿损坏的问题
修复删除数据验证函数 DeleteDataValidation 在数据验证单元格范围无序时,数据验证单元格范围未被正确更新的问题
修复设置条件格式函数 SetConditionalFormat 在设置部分带有时间周期条件格式规则时,生成的工作簿损坏的问题
修复计算单元格的值时,对带有单引号的工作表名称解析失败,导致的单元格公式计算结果有误问题
修复使用默认字体或填充格式创建样式时,重复创建样式的问题,相关 issue 2254
性能优化
通过增加计算缓存并将处理范围限定到实际数据区域,优化了公式计算引擎的性能,相关 issues 2057 和 2223
优化算带有 VLOOKUP 函数的公式计算性能,内存分配与耗时最多降低约 50%,相关 issue 2139
优化了合并单元格重叠范围的检查算法,降低了获取合并单元格函数 GetMergeCells 的内存分配和耗时,相关 issue 2226
通过使用连分数基本递推公式转换优化了带有分数数字格式代码的单元格读取速度
其他
Go Modules 依赖模块更新
单元测试与文档更新
包含阿拉伯语、德语、英语、西班牙语、法语、意大利语、日语、韩语、葡萄牙语、俄语、简体中文和繁体中文的多国语言文档网站更新
支持 WebAssembly / JavaScript 的 excelize-wasm NPM 包发布版本更新
支持 Python 的 excelize PyPI 包发布版本更新
支持 C# 的 ExcelizeCs NuGet .Net 包发布
致谢
感谢 Excelize 的所有贡献者,以下是为此版本提交代码的贡献者列表:
pjh591029530 (Simmons25)
Sang-Hyuk (SangHyuk)
wangacc
kenny-not-dead (Roman Sergeev)
pegasscience-cyber
jesusfelix951-lang
felixdevelopper-hue
shcabin
radam9
sqdtss
IvanHristov98 (Ivan Hristov)
yasarluo (Yasar Luo)
DengY11 (Yi Deng)
Kingson4Wu (Kingson4Wu)
zhuzhengyang (Zhu Zhengyang)
schbook
rhinewg
jpoz (James Pozdena)
sides-flow (Sides)
t4traw (Tatsuro Moriyama)
ijustyce (杨春)
d9c4
imirkin (Ilia Mirkin)
atmngw (Atsuki)
Flashcqxg
olivere (Oliver Eilhard)
susautw (Su, Rin)
ohauer (Olli Hauer)
yan00353-0729
《Excelize权威指南》新书发布
《Excelize权威指南》不仅介绍了 Excelize 库的基本使用方法,还深入探索了高级特性和应用场景。全书共分五个篇章:入门指南、基础库设计概览、深入 Excelize、高性能流式读写技术以及实践应用。通过这本书,你将学会如何利用 Go 语言和 Excelize 库,实现 Excel 文件的自动化处理、复杂数据分析以及报表生成等任务。
你将不再受限于 Excel 的传统操作方式,而是能够通过编程的方式,解锁 Excel 新境界,创造出更加智能、高效的数据处理解决方案。
欢迎加入技术交流群
