Excelize 2.5.0 正式发布,这些新增功能值得关注

Excelize 是 Go 语言编写的用于操作 Office Excel 文档基础库,基于 ECMA-376,ISO/IEC 29500 国际标准。可以使用它来读取、写入由 Microsoft Excel 2007 及以上版本创建的电子表格文档。支持 XLSX / XLSM / XLTM 等多种文档格式,高度兼容带有样式、图片(表)、透视表、切片器等复杂组件的文档,并提供流式读写 API,用于处理包含大规模数据的工作簿。可应用于各类报表平台、云计算、边缘计算等系统。入选 2020 Gopher China - Go 领域明星开源项目(GSP)、2018 年开源中国码云最有价值开源项目 GVP (Gitee Most Valuable Project),目前已成为 Go 语言最受欢迎的 Excel 文档基础库。
开源代码
GitHub: github.com/xuri/excelize
Gitee: gitee.com/xurime/excelize
中文文档: xuri.me/excelize/zh-hans
2022年1月3日,社区正式发布了 2.5.0 版本,该版本包含了多项新增功能、错误修复和兼容性提升优化。下面是有关该版本更新内容的摘要,完整的更改列表可查看 changelog。
此版本中最显著的变化包括:
兼容性提示
- 打开已有工作簿或在获取行迭代器后,需要调用对应的
Close函数关闭工作簿和数据流 - 修改
ReadZipReader为File的实现, 支持通过选项指定解压至内存或文件系统 - 移除了不必要的导出变量
XMLHeader,可使用encoding/xml包的xml.Header代替 - 移除了不再使用的导出变量
ErrToExcelTime
新增功能
- 新增 API:
SetRowStyle支持设置整行样式, 相关 issue #990 - 新增 API:
GetCellType支持获取单元格数据类型, 相关 issue #417 和 #520 - 新增 API:
SetAppProps和GetAppProps支持设置与获取工作簿应用程序属性, 相关 issue #1095 GetCellValue,GetRows,GetCols,Rows和Cols支持指定是否读取单元格原始值而不应用数字格式表达式, 相关 issue #621- 新增 95 项公式函数: ACCRINT, ACCRINTM, ADDRESS, AMORDEGRC, AMORLINC, AVEDEV, AVERAGEIF, CHIDIST, CONFIDENCE, CONFIDENCE.NORM, COUNTIF, COUNTIFS, COUPDAYBS, COUPDAYS, COUPDAYSNC, COUPNCD, COUPNUM, COUPPCD, DATEVALUE, DAY, DAYS, DELTA, DEVSQ, DISC, DURATION, ERF, ERF.PRECISE, ERFC, ERFC.PRECISE, GEOMEAN, GESTEP, IFNA, IFS, INDEX, INTRATE, ISFORMULA, ISLOGICAL, ISREF, ISOWEEKNUM, MATCH, MAXA, MAXIFS, MDURATION, MINIFS, MINUTE, MONTH, ODDFPRICE, PERCENTILE.EXC, PERCENTRANK.EXC, PERCENTRANK.INC, PERCENTRANK, PRICE, PRICEDISC, PRICEMAT, PV, QUARTILE.EXC, RANK, RANK.EQ, RATE, RECEIVED, RRI, SHEETS, SLN, STANDARDIZE, STDEV.P, STDEVP, SWITCH, SYD, TBILLEQ, TBILLPRICE, TBILLYIELD, TEXTJOIN, TIME, TRANSPOSE, TRIMMEAN, VALUE, VAR, VAR.S, VARA, VARPA, VDB, WEEKDAY, WEIBULL, WEIBULL.DIST, XIRR, XLOOKUP, XNPV, XOR, YEAR, YEARFRAC, YIELD, YIELDDISC, YIELDMAT, Z.TEST, ZTEST, 相关 issue #65 和 #1002
- 公式计算引擎支持嵌套
IF函数, 相关 issue #987 - 公式计算引擎支持共享公式, 相关 issue #844
- 公式计算引擎支持文本比较运算, 相关 issue #998
- 支持在数据验证中使用公式, 相关 issue #1012
- 支持文档压缩比限制,避免潜在的安全风险
SetCellFormula支持设置共享公式UpdateLinkedValue在清除单元格计算缓存时将跳过 macro sheet, 相关 issue #1014- 修复部分情况下,由于内部依赖关系计算错误导致的
AddPicture重复创建图片的问题, 相关 issue #1017 AddShape支持设置形状轮廓线条宽度, 相关 issue #262- 新增文档打开选项
UnzipXMLSizeLimit以支持指定打开每个工作表以及共享字符表时的内存解压上限 - 创建样式时,若给定的自定义数字格式无效,将返回错误提示,相关 issue #1028
- 流式写入现已支持设置行样式
- 流式写入器将为时间类型单元格创建时间数字格式样式,相关 issue #1107
- 支持设置数据透视表报表布局“以压缩形式显示”或“以大纲形式显示”, 相关 issue #1029
- 行/列迭代器支持获取当前行/列序号和行/列总数, 相关 issue #1054
- 使用 time.Time 类型参数进行单元格赋值时,支持时区位置, 相关 issue #1069
- 新增导出 7 项错误信息,以便开发者可根据不同的错误类型进行采取相应处理
兼容性提升
- 提升与内部带有
r="0"属性工作表的兼容性 - 保留 XML 控制字符
- 提升样式设置与 Apple Numbers 的兼容性, 相关 issue #1059
- 页眉页脚字符数限制兼容多字节字符, 相关 issue #1061
- 设置单元格时将保留水平制表符, 相关 issue #1108
问题修复
- 修复部分情况下删除数据验证失败的问题, 解决 issue #979
- 修复部分情况下设置数据验证下拉列表失败的问题, 解决 issue #986
- 修复公式计算引擎
LOOKUP函数部分情况下计算结果错误的问题, 解决 issue #994 - 修复公式计算引擎
LOOKUP仅支持完全匹配的问题, 解决 issue #997 - 修复公式计算引擎百分比计算错误的问题, 解决 issue #993
- 修复特定情况下单元格读取异常导致的 panic
- 修复设置“后 N 项”条件格式失败的问题
- 修复部分情况下时间解析错误的问题, 解决 issue #1026 和 #1030
- 修复科学记数法数字格式的单元格值解析异常的问题,解决 issue #1027
- 修复部分情况下浮点型数据读取异常的问题,解决 issue #1031
- 修复部分情况下删除工作表失败的问题
- 修复内建时间数字格式解析异常问题,解决 issue #1060
- 修复部分情况下新建样式时返回样式 ID 异常的问题
- 修复部分情况下删除行列后合并单元格区域异常的问题
性能优化
- 合并单元格性能大幅提升,耗时降低 90%
- 提高流式读取性能,当内部 XML 较大时,将共享字符串表解压缩到系统临时文件,内存使用量减少约 60%, 相关 issue #109
- 优化读取工作表列表性能
- 优化设置列样式存储,缩小生成的文档体积,解决 issue #1057
其他
- Go Modules 依赖模块更新
- 单元测试与文档更新
- 包含简体中文、英语、法语、俄语、日语、韩语、阿拉伯语、德语和西班牙语的多国语言文档网站更新
Excelize 2.5.0 正式发布,这些新增功能值得关注的更多相关文章
- Win 10更新版1709有哪些新功能值得关注!
windows 10秋季创意者更新版1709发布已经有段时间了,也有很多用户选择升级这次更新的系统.那么,这次Win 10 更新版1709有哪些新功能值得关注呢?下面,一起随主机吧来看一看吧! 1. ...
- .NET Framework3.0/3.5/4.0/4.5新增功能摘要
Microsoft .NET Framework 3.0 .NET Framework 3.0 中增加了不少新功能,例如: Windows Workflow Foundation (WF) Windo ...
- hadoop2.6.0汇总:新增功能最新编译 32位、64位安装、源码包、API下载及部署文档
相关内容: hadoop2.5.2汇总:新增功能最新编译 32位.64位安装.源码包.API.eclipse插件下载Hadoop2.5 Eclipse插件制作.连接集群视频.及hadoop-eclip ...
- nopCommerce 3.3正式发布及新增功能改进
nopCommerce是一套优秀开源且基于Asp.net MVC的开源商城系统,nopCommerce 3.x经历长时间多个版本重构优化改进,目前已经趋于完善与成熟! nopCommerce 3.3正 ...
- JDK15正式发布,新增功能预览!
JDK 15 在 2020 年 9 月 15 号正式发布了,这次发布的主要功能有: JEP 339:EdDSA 数字签名算法 JEP 360:密封类(预览) JEP 371:隐藏类 JEP 372:删 ...
- 开源社交系统ThinkSNS+ V0.8.0 正式发布(一期功能版本)
智士软件旗下开源sns社交系统ThinkSNS即将进入10周年,推出并行两代系统ThinkSNSV4和ThinkSNS+,以专业易用的技术源码输出,驱动互联网社交软件建设及创业,使用ThinkSNS改 ...
- C# 6.0 中的新增功能(.NET Framework 4.6 与 Visual Studio 2015 )
C#6.0 在 2015 年7月随着.NET Framework 4.6 一同发布,后期发布了.NET Framework 4.6.1,4.6.2. 一.自动属性初始化(Auto-property i ...
- goldengate for big data 12.2.0.1.1新增功能
新格式支持:包括Avro OCF和HDFS顺序文件,OGG现在支持将数据写入Avro对象容器(Object container format)和HDFS顺序文件 支持Hadoop平台元数据或DDL更新 ...
- C#2.0新增功能01 分布类与分部方法
连载目录 [已更新最新开发文章,点击查看详细] 分部类型 拆分一个类.一个结构.一个接口或一个方法的定义到两个或更多的文件中, 每个源文件包含类型或方法定义的一部分,编译应用程序时将把所有部分组 ...
随机推荐
- 前端2CSS
内容概要 form表单 网络请求方式 CSS简介 CSS查找标签之基本选择器(重要) CSS查找标签之组合选择器(重要) 属性选择器 分组与嵌套 伪类选择器 内容详情 form表单 "&qu ...
- 开源流程引擎该如何选择flowable还是camunda
市场上比较有名的开源流程引擎有osworkflow.jbpm.activiti.flowable.camunda.现在国内用的最多的是activiti.flowable.camunda,下面主要从功能 ...
- php 使用phpqrcode生成二维码并上传到OSS
一般情况调用phpqrcode第三方插件 会把生成的二维码图片保存到服务器,不保存服务器也会以header头的形式输出到浏览器,(我们不允许把图片文件保存的liunx服务器,只能保存到阿里云OSS存储 ...
- 基于MybatisPlus代码生成器(2.0新版本)
一.模块简介 1.功能亮点 实时读取库表结构元数据信息,比如表名.字段名.字段类型.注释等,选中修改后的表,点击一键生成,代码成即可提现出表结构的变化. 单表快速转化restful风格的API接口并对 ...
- sqlserver用windows方式验证登录踩过的坑
坑位一: 之前没用过windows验证方式登录sqlserver,连接串怎么写 坑位二: 链接上了,但是启动报错 八月 19, 2020 9:33:43 上午 com.microsoft.sqlser ...
- React与Koa一起打造一个功能丰富的全栈个人博客(业务篇)
前言 豆哥的个人博客又改版了,本版主要技术栈是前台用的React,后台用的Koa.博客改版的初衷是自己可以练练React(公司的项目部分要用React,我也没法啊,再说早晚得学).本文主要介绍博客的业 ...
- python各种BUG报错解决
报错1 python学习交流群:660193417### Could not build atari-py: Command '['cmake', '..']' returned non-zero e ...
- 如何快速体验OneOS
随便逛了逛 之前有简单了解过OneOS,今天逛了下OneOS专区,发现官方终于也在宣传方面发力了啊,很多文章都非常专业,也有开发者在专区里面提问题了.也发现,部分开发者倒在了第一步,如何编译下载运行O ...
- docker安装Nessus
Nessus家庭版最大只支持扫描16个主机,但利用docker无限使用,当然虚拟机快照也可以. 关于网上其他的破解版,我是没有成功(显示成功了,其实是自慰版),所以才弄得这个镜像 提供两个镜像(不懂d ...
- idea 生成方法注释
/* * * @description: * @author: xuetong.yang * @date: $date$ $time$ $params$ * @return: $return$ */ ...