Excelize 发布 2.0.2 版本, Go 语言 Excel 基础库

简介: Excelize 发布 2.0.2 版本, Go 语言最受欢迎的 Excel 基础库。2019年10月9日,社区正式发布了 2.0.2 版本,该版本包含了多项新增功能、错误修复和兼容性提升优化。下面是有关该版本更新内容的摘要,完整的更改列表可查看 change log。

github.com/xuri/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
中文文档: xuri.me/excelize/zh-hans

2019年10月9日,社区正式发布了 2.0.2 版本,该版本包含了多项新增功能、错误修复和兼容性提升优化。

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

兼容性提示

升级至该版本需要您的 Go 语言版本高于 1.10。

新增功能

  • 支持创建数据透视表。新增 AddPivotTable() 函数
  • 支持创建迷你图 (Sparkine)。 新增 AddSparkline() 函数
  • 新增 GroupSheets()UngroupSheets() 方法,支持设置工作表分组和取消工作表分组
  • 新增 AddVBAProject() 方法,支持向 Excel 文档中嵌入包含函数和宏的 VBA 工程
  • 函数 SetPageLayout() 增加适应页面宽高属性支持,相关 issue #432
  • 函数 SetSheetViewOptions() 现在支持 “值为零的单元格是否显示零值” 属性的设置
  • 函数 SetCellFormula() 增加了对公式类型和引用属性的设置支持
  • 增加带有删除线字体样式的创建支持,相关 issue #482

问题修复

  • 修复部分情况下读取批注内容文本不完整的问题,解决 issue #434
  • 修复由于内部合并单元格偏移量计算错误导致的部分情况下使用 RemoveRow() 删除行出现下标越界问题,解决 issue #437
  • 修复部分情况下数据验证下拉菜单中的公式失效问题
  • 修复在循环迭代中调用 Save() 方法保存导致的文档损坏问题,解决 issue #443
  • 提升文档内部 workbook.xml.rels 中相对路径格式解析的兼容性,解决 issue #442
  • 修复部分情况下,删除带有合并单元格的文档所导致的文件损坏问题
  • 修复部分情况下设置保护工作表属性失效的情况,解决 issue #454
  • 修复部分情况下 GetSheetName 获取工作表名称为空的问题, 解决 issue #457
  • 增加单元格内多行文本解析的支持, 相关 issue #464
  • 修复 32 位操作系统环境下数字溢出问题,相关 issue #386
  • 修复 go module 依赖版本不匹配问题, 相关 issue #466 和 issue #480
  • 修复部分情况下调用 SetSheetPrOptions() 所致的文档损坏问题,解决 issue #483

性能表现

  • 性能优化,减少读取文档时的内存开销和耗时,相关 issue #439

其他

  • 完善 SetSheetRow() 函数中的异常处理
  • 代码精简优化, 合并了下列内部函数:

将函数 workBookRelsWriter, drawingRelsWriter 合并为 relsWriter;
将函数 drawingRelsReader, workbookRelsReader, workSheetRelsReader 合并为 relsReader;
将函数 addDrawingRelationships, addSheetRelationships 合并为 addRels

目录
相关文章
|
10天前
|
监控 算法 Go
Golang深入浅出之-Go语言中的服务熔断、降级与限流策略
【5月更文挑战第4天】本文探讨了分布式系统中保障稳定性的重要策略:服务熔断、降级和限流。服务熔断通过快速失败和暂停故障服务调用来保护系统;服务降级在压力大时提供有限功能以保持整体可用性;限流控制访问频率,防止过载。文中列举了常见问题、解决方案,并提供了Go语言实现示例。合理应用这些策略能增强系统韧性和可用性。
41 0
|
1天前
|
数据采集 人工智能 搜索推荐
快速入门:利用Go语言下载Amazon商品信息的步骤详解
本文探讨了使用Go语言和代理IP技术构建高效Amazon商品信息爬虫的方法。Go语言因其简洁语法、快速编译、并发支持和丰富标准库成为理想的爬虫开发语言。文章介绍了电商网站的发展趋势,如个性化推荐、移动端优化和跨境电商。步骤包括设置代理IP、编写爬虫代码和实现多线程采集。提供的Go代码示例展示了如何配置代理、发送请求及使用goroutine进行多线程采集。注意需根据实际情况调整代理服务和商品URL。
快速入门:利用Go语言下载Amazon商品信息的步骤详解
|
3天前
|
存储 编译器 Go
Go语言学习12-数据的使用
【5月更文挑战第5天】本篇 Huazie 向大家介绍 Go 语言数据的使用,包含赋值语句、常量与变量、可比性与有序性
38 6
Go语言学习12-数据的使用
|
4天前
|
Java Go
一文带你速通go语言指针
Go语言指针入门指南:简述指针用于提升效率,通过地址操作变量。文章作者sharkChili是Java/CSDN专家,维护Java Guide项目。文中介绍指针声明、取值,展示如何通过指针修改变量值及在函数中的应用。通过实例解析如何使用指针优化函数,以实现对原变量的直接修改。作者还邀请读者加入交流群深入探讨,并鼓励关注其公众号“写代码的SharkChili”。
11 0
|
4天前
|
存储 缓存 Java
来聊聊go语言的hashMap
本文介绍了Go语言中的`map`与Java的不同设计思想。作者`sharkChili`是一名Java和Go开发者,同时也是CSDN博客专家及JavaGuide项目的维护者。文章探讨了Go语言`map`的数据结构,包括`count`、`buckets指针`和`bmap`,解释了键值对的存储方式,如何利用内存对齐优化空间使用,并展示了`map`的初始化、插入键值对以及查找数据的源码过程。此外,作者还分享了如何通过汇编查看`map`操作,并鼓励读者深入研究Go的哈希冲突解决和源码。最后,作者提供了一个交流群,供读者讨论相关话题。
15 0
|
5天前
|
Java Go
Go语言学习11-数据初始化
【5月更文挑战第3天】本篇带大家通过内建函数 new 和 make 了解Go语言的数据初始化过程
18 1
Go语言学习11-数据初始化
|
5天前
|
自然语言处理 安全 Java
速通Go语言编译过程
Go语言编译过程详解:从词法分析(生成token)到句法分析(构建语法树),再到语义分析(类型检查、推断、匹配及函数内联)、生成中间码(SSA)和汇编码。最后,通过链接生成可执行文件。作者sharkchili,CSDN Java博客专家,分享技术细节,邀请读者加入交流群。
23 2
|
6天前
|
Java Linux Go
一文带你速通Go语言基础语法
本文是关于Go语言的入门介绍,作者因其简洁高效的特性对Go语言情有独钟。文章首先概述了Go语言的优势,包括快速上手、并发编程简单、设计简洁且功能强大,以及丰富的标准库。接着,文章通过示例展示了如何编写和运行Go代码,包括声明包、导入包和输出语句。此外,还介绍了Go的语法基础,如变量类型(数字、字符串、布尔和复数)、变量赋值、类型转换和默认值。文章还涉及条件分支(if和switch)和循环结构(for)。最后,简要提到了Go函数的定义和多返回值特性,以及一些常见的Go命令。作者计划在后续文章中进一步探讨Go语言的其他方面。
11 0
|
7天前
|
JavaScript 前端开发 Go
Go语言的入门学习
【4月更文挑战第7天】Go语言,通常称为Golang,是由Google设计并开发的一种编程语言,它于2009年公开发布。Go的设计团队主要包括Robert Griesemer、Rob Pike和Ken Thompson,这三位都是计算机科学和软件工程领域的杰出人物。
14 1
|
7天前
|
Go