Excelize 是 Go 语言编写的用于操作 Office Excel 文档基础库,基于 ECMA-376,ISO/IEC 29500 国际标准。可以使用它来读取、写入由 Microsoft Excel™ 2007 及以上版本创建的电子表格文档。支持 XLSX / XLSM / XLTM 等多种文档格式,高度兼容带有样式、图片(表)、透视表、切片器等复杂组件的文档,并提供流式读写 API,用于处理包含大规模数据的工作簿。可应用于各类报表平台、云计算、边缘计算等系统。入选 2018 开源中国码云 Gitee 最有价值开源项目 GVP,目前已成为 Go 语言最受欢迎的 Excel 文档基础库。
开源
GitHub: github.com/xuri/excelize
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 问题
- 完善单元测试中的错误处理
- 包含简体中文、英语、法语、俄语、日语和韩语的多国语言文档网站更新