Golang Go语言 Excelize 发布 2.1.0 版本,Excel 文档基础库

发布于 1周前 作者 eggper 来自 Go语言

Golang Go语言 Excelize 发布 2.1.0 版本,Excel 文档基础库

github.com/360EntSecGroup-Skylar/excelize

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 年 2 月 10 日,社区正式发布了 2.1.0 版本,该版本包含了多项新增功能、错误修复和兼容性提升优化。下面是有关该版本更新内容的摘要,完整的更改列表可查看 changelog

Release Notes

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

新增功能

问题修复

  • 修复单元格值的末尾空白字符丢失问题
  • 函数 MergeCell 支持重叠合并单元格处理,解决 issue #533
  • 修复某些情况下空内联富文本丢失的问题,解决 issue #529
  • 修复对空工作簿视图的处理,解决 issue #426
  • 增加对公式中存在的转义字符处理,解决 issue #546

性能表现

  • 新增 NewStreamWriterFlush 方法,适用于生成包含大规模数据的工作表。与非流式写入相比,可降低 90.2% 的内存开销、节省 53% 时间
  • 函数 GetRows 内存采用流式数据读取,读取电子表格文档内存开销降低 87.9%,相关 issue #146issue #382
  • 兼容性提升,新增 49 个文档内部 XML 命名空间支持

其他

  • 对于解析 XML 过程出现的异常将使用日志记录,相关 issue #539
  • 提高单元测试覆盖度(行覆盖度:97.04%)
  • 完善单元测试中的错误处理
  • 包含简体中文、英语、法语、俄语、日语和韩语的多国语言文档网站更新
  • 技术交流群

DingTalk Group ID: 30047129 QQ Group ID: 207895940

Excel 技术交流群

更多关于Golang Go语言 Excelize 发布 2.1.0 版本,Excel 文档基础库的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html

9 回复

顶一下,有机会试试大批量性能提升

更多关于Golang Go语言 Excelize 发布 2.1.0 版本,Excel 文档基础库的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


之前用过,感谢大佬的开发

支持插入图片? 能不能插入 pdf 之类?

赞,之前用过

对于大型的 excelw 不知道咋样 比如 40 万条

流式写入 400000 行 x 50 列 数据大约耗时 46s,内存占用 995MB,生成的 Excel 文件 130 MB

不会内存溢出就很好了

针对“Golang Go语言 Excelize 发布 2.1.0 版本,Excel 文档基础库”的帖子,以下是我的专业回复:

Excelize 2.1.0 版本的发布,标志着 Go 语言在处理 Excel 文档方面又迈出了坚实的一步。作为 Go 语言编写的 Excel 文档基础库,Excelize 基于 ECMA-376 Office Open XML 标准,能够读取和写入由 Microsoft Excel 2007 及以上版本创建的 XLSX 文档。

此版本带来了多项新增功能和优化:

  • 功能增强:新增了删除名称、设置和获取页面边距、删除图表和图片等功能,同时增强了 AddChart 函数,支持创建更多类型的图表,并可以设置图表的主要网格线、折线图线条宽度以及坐标轴标签间隔单位等。
  • 性能优化:通过新增 NewStreamWriter 和 Flush 方法,降低了生成包含大规模数据工作表的内存开销和时间。此外,GetRows 函数也采用了流式数据读取,进一步降低了内存开销。
  • 错误修复与兼容性提升:修复了多个与单元格值、合并单元格、空内联富文本以及空工作簿视图相关的问题,并提升了与内部带有绝对路径绘图部件工作簿等的兼容性。

Excelize 已成为 Go 语言处理 Excel 文档的热门选择,其丰富的功能和高效的性能使其成为各类报表系统、云计算和边缘计算等系统的理想工具。

回到顶部