Excelize 是 Go 语言编写的用于操作 Office Excel 文档类库,基于 ECMA-376 Office OpenXML 标准。可以使用它来读取、写入由 Microsoft Excel™ 2007 及以上版本创建的 XLSX 文档。相比较其他的开源类库,Excelize 支持写入原本带有图片(表)、透视表和切片器等复杂样式的文档,还支持向 Excel 文档中插入图片与图表,并且在保存后不会丢失文档原有样式,可以应用于各类报表系统中。

2019年1月3日, 社区正式发布了 1.4.1 版本,该版本包含了很多新功能和错误修复。下面是有关该版本更新内容的摘要,完整的更改列表可查看 change log.

Release Notes

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

新增功能

  • 新增 WriteTo() 方法, 该函数通过实现 io.WriterTo 接口支持文件写入

  • 新增 SearchSheet() 方法,支持通过给定工作表名称、单元格的值或者正则表达式来搜索指定工作表,相关 issue #277

  • 新增 ProtectSheet() 和 UnprotectSheet() 方法,支持设置保护和取消保护工作表,以防止其他用户意外或故意更改,移动或删除工作表中的数据,相关 issue #273

  • 新增 GetMergeCells() 方法,支持通过给定的工作表名称获取当前工作表中全部合并单元格的坐标与值

  • 支持对页面轮廓线属性设置的支持 relate issue #304

  • 新增 go module 支持

  • 支持设置与获取工作表的 TopLeftCell 属性,相关 issue #310

  • 图标创建函数 AddChart() 新增支持创建 二维面积图、二维堆积面积图、二维百分比堆积面积图、三维面积图、三维堆积面积图和三维百分比堆积面积图,相关 issue #311

问题修复

  • 修复内部函数 sharedStringsReader() 因缺少传统与严格模式 XML 命名空间地址转换导致的问题,解决相关 issue #276

  • 修复图标格式设置 JSON 参数结构体 tag 定义的问题

  • 修复部分情况下获取单元格公式时出现空指针异常问题,解决了相关 issue #290

  • 通过 GetRows() 获取指定工作表中全部单元格,该函数的返回值将忽略工作表尾部空白行,解决了相关 issue #195

  • 修复部分情况下 GetSheetMap() 返回工作表索引与名称异常问题,解决了相关 issue #297

  • 修复部分情况下通过索引删除工作表出现的异常问题,解决了相关 issue #308

其他

  • 对单元测试进行了重构,相关 issue #322

  • 使用为 excelize 设计的新 Logo, 大量的文档更新