<p align="center"><img src="https://xuri.me/excelize/images/excelize.svg" width="440" alt="github.com/360EntSecGroup-Skylar/excelize" /></p>
[Excelize](https://github.com/xuri/excelize) 是 Go 语言编写的用于操作 Office Excel 文档类库,基于 ECMA-376 Office Open XML 标准。可以使用它来读取、写入由 Microsoft Excel™ 2007 及以上版本创建的 XLSX 文档。相比较其他的开源类库,Excelize 支持写入原本带有图片(表)、透视表和切片器等复杂样式的文档,还支持向 Excel 文档中插入图片与图表,并且在保存后不会丢失文档原有样式,可以应用于各类报表系统中。入选 2018 开源中国码云 [Gitee 最有价值开源项目 GVP](https://gitee.com/xurime/excelize),目前已成为 Go 语言最受欢迎的 Excel 文档基础库。
#### 开源代码
**GitHub:** [github.com/xuri/excelize](https://github.com/xuri/excelize)
**中文文档:** [xuri.me/excelize/zh-hans](https://xuri.me/excelize/zh-hans/)
2020年2月10日,社区正式发布了 2.1.0 版本,该版本包含了多项新增功能、错误修复和兼容性提升优化。下面是有关该版本更新内容的摘要,完整的更改列表可查看 [changelog](https://github.com/xuri/excelize/compare/v2.0.2...v2.1.0)。
Release Notes
------------
此版本中最显著的变化包括:
#### 新增功能
* 新增 [`DeleteDefinedName`](https://godoc.org/github.com/360EntSecGroup-Skylar/excelize#File.DeleteDefinedName) 方法,支持从工作簿或工作表中删除名称
* 新增 [`SetPageMargins`](https://godoc.org/github.com/360EntSecGroup-Skylar/excelize#File.SetPageMargins) 和 [`GetPageMargins`](https://godoc.org/github.com/360EntSecGroup-Skylar/excelize#File.GetPageMargins) 方法,支持获取和设置页面边距
* 新增 [`DeleteChart`](https://godoc.org/github.com/360EntSecGroup-Skylar/excelize#File.DeleteChart) 和 [`DeletePicture`](https://godoc.org/github.com/360EntSecGroup-Skylar/excelize#File.DeletePicture) 方法,支持从工作表中删除图表和图片
* 增加对非 UTF-8 编码 Excel 文档的支持
* 函数 [`AddChart`](https://godoc.org/github.com/360EntSecGroup-Skylar/excelize#File.AddChart) 现已支持创建子母饼图、复合条饼图和组合图
* 函数 [`AddChart`](https://godoc.org/github.com/360EntSecGroup-Skylar/excelize#File.AddChart) 新增设置图表主要网格线支持,相关 [issue #501](https://github.com/xuri/excelize/issues/501)
* 函数 [`AddChart`](https://godoc.org/github.com/360EntSecGroup-Skylar/excelize#File.AddChart) 支持设置折线图线条宽度,相关 [issue #505](https://github.com/xuri/excelize/issues/505)
* 函数 [`AddChart`](https://godoc.org/github.com/360EntSecGroup-Skylar/excelize#File.AddChart) 现已支持指定图表坐标轴标签间隔单位,相关 [issue #538](https://github.com/xuri/excelize/issues/538)
* 函数 [`SetColVisible`](https://godoc.org/github.com/360EntSecGroup-Skylar/excelize#File.SetColVisible) 支持对指定范围内的多列进行可见行设置
* 函数 [`AddPivotTable`](https://godoc.org/github.com/360EntSecGroup-Skylar/excelize#File.AddPivotTable) 支持创建数据透视表时,所引用数据源区域存在空列,相关 [issue #511](https://github.com/xuri/excelize/issues/511)
#### 问题修复
* 修复单元格值的末尾空白字符丢失问题
* 函数 [`MergeCell`](https://godoc.org/github.com/360EntSecGroup-Skylar/excelize#File.MergeCell) 支持重叠合并单元格处理,解决 [issue #533](https://github.com/xuri/excelize/issues/533)
* 修复某些情况下空内联富文本丢失的问题,解决 [issue #529](https://github.com/xuri/excelize/issues/529)
* 修复对空工作簿视图的处理,解决 [issue #426](https://github.com/xuri/excelize/issues/426)
* 增加对公式中存在的转义字符处理,解决 [issue #546](https://github.com/xuri/excelize/issues/546)
#### 性能表现
* 新增 [`NewStreamWriter`](https://godoc.org/github.com/360EntSecGroup-Skylar/excelize#File.NewStreamWriter) 和 [`Flush`](https://godoc.org/github.com/360EntSecGroup-Skylar/excelize#StreamWriter.Flush) 方法,适用于生成包含大规模数据的工作表。与非流式写入相比,可降低 90.2% 的内存开销、节省 53% 时间
* 函数 [`GetRows`](https://godoc.org/github.com/360EntSecGroup-Skylar/excelize#File.GetRows) 内存采用流式数据读取,读取电子表格文档内存开销降低 87.9%,相关 [issue #146](https://github.com/xuri/excelize/issues/146) 和 [issue #382](https://github.com/xuri/excelize/issues/382)
* 兼容性提升,新增 49 个文档内部 XML 命名空间支持
#### 其他
* 对于解析 XML 过程出现的异常将使用日志记录,相关 [issue #539](https://github.com/xuri/excelize/issues/539)
* 提高单元测试覆盖度(行覆盖度:97.04%)
* 完善单元测试中的错误处理
* 包含简体中文、英语、法语、俄语、日语和韩语的[多国语言文档网站](https://xuri.me/excelize)更新
* 技术交流群
DingTalk Group ID: [`30047129`](https://qr.dingtalk.com/action/joingroup?code=v1,k1,2oHMIIOyvPcGezVdHJjsHwdZzzYNI6xs3Oww8uhlvCk=&_dt_no_comment=1&origin=11)
QQ Group ID: [`207895940`](https://jq.qq.com/?_wv=1027&k=5imdV9h)
<img width="400" src="https://xuri.me/excelize/zh-hans/images/group@2x.png" alt="Excel 技术交流群">
有疑问加站长微信联系(非本文作者)