
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 新境界,创造出更加智能、高效的数据处理解决方案。
欢迎加入技术交流群
