Excelize 是 Go 语言编写的用于操作 Office Excel 文档类库,基于 ECMA-376 Office Open XML 标准。可以使用它来读取、写入由 Microsoft Excel™ 2007 及以上版本创建的 XLSX 文档。相比较其他的开源类库,Excelize 支持写入原本带有图片(表)、透视表和切片器等复杂样式的文档,还支持向 Excel 文档中插入图片与图表,并且在保存后不会丢失文档原有样式,可以应用于各类报表系统中。入选 2018 开源中国码云 Gitee 最有价值开源项目 GVP,目前已成为 Go 语言最受欢迎的 Excel 文档基础库。
开源代码
GitHub: github.com/xuri/excelize
Gitee: gitee.com/xurime/excelize
中文文档: xuri.me/excelize/zh-hans
2020年8月10日,社区正式发布了 2.3.0 版本,该版本包含了多项新增功能、错误修复和兼容性提升优化。下面是有关该版本更新内容的摘要,完整的更改列表可查看 changelog。
Release Notes
此版本中最显著的变化包括:
新增功能
- 支持并发设置单元格的值,相关 issue #670
- 新增 API:
SetSheetFormatPr
和GetSheetFormatPr
,支持设置工作表格式属性,相关 issue #635 - 新增 API:
GetCols
和Cols
列迭代器 AddChart
添加图表 API 支持指定 Y 轴对数刻度,相关 issue #661AddPicture
添加图片 API 支持插入图片自适应单元格- 增加对行、列和工作簿名称的长度上限的检查
- 公式计算引擎支持自定义名称,相关 issue #665
- API
CalcCellValue
更新:新增 12 项函数,COUNTA
,ISBLANK
,ISERR
,ISERROR
,ISEVEN
,ISNA
,ISNONTEXT
,ISODD
,ISNUMBER
,MEDIAN
,NA
和SUMIF
兼容性提升
- 兼容不同大小写的文档内部组件路径
- 字符型单元格的值存储于共享字符表中,降低生成文档体积
- 支持工作表中无
r
属性的row
标签,以修复部分情况下读取工作表内容为空的问题 - 支持多命名空间的 XML 标签,以兼容金山 WPS 等电子表格应用程序,解决 issue #651
- 自动筛选器兼容 Office 2007 - 2010 版本的电子表格应用程序,解决 issue #637
问题修复
- 修复因工作簿内产生了重复的筛选数据库而导致的文档损坏问题
- 避免添加样式时生成重复的样式定义
- 修复设置富文本中包含的特殊字符丢失问题
- 修复使用 Office 应用程序打开添加批注的文档,保存后再次打开批注形状不为矩形的问题,解决 #672
- 避免部分情况下开启编译内联优化参数时潜在的运行时 panic 问题,解决 issue #677 和 #679
- 修正获取百分比单元格值的数值精度问题
其他
- 修复特定情况下打开无效工作表时出现的异常 panic 问题
- 完善单元测试中的错误处理
- 包含简体中文、英语、法语、俄语、日语和韩语的多国语言文档网站更新
- 技术交流群