Excelize 发布 2.6.0 版本,功能强大的 Excel 文档基础库

Excelize 是 Go 语言编写的用于操作 Office Excel 文档基础库,基于 ECMA-376,ISO/IEC 29500 国际标准。可以使用它来读取、写入由 Microsoft Excel 2007 及以上版本创建的电子表格文档。支持 XLAM / XLSM / XLSX / XLTM / XLTX 等多种文档格式,高度兼容带有样式、图片(表)、透视表、切片器等复杂组件的文档,并提供流式读写 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年4月11日,社区正式发布了 2.6.0 版本,该版本包含了多项新增功能、错误修复和兼容性提升优化。下面是有关该版本更新内容的摘要,完整的更改列表可查看 changelog。
此版本中最显著的变化包括:
兼容性提示
- 重命名导出常量
NameSpaceDublinCoreMetadataIntiative为NameSpaceDublinCoreMetadataInitiative以修复拼写错误 - 重命名导出变量
ErrUnsupportEncryptMechanism为ErrUnsupportedEncryptMechanism - 重命名导出变量
ErrDataValidationFormulaLenth为ErrDataValidationFormulaLength - 重命名导出变量
ErrDefinedNameduplicate为ErrDefinedNameDuplicate - 移除了导出变量
XMLHeaderByte - 移除了设置数据数据验证列表函数
SetSqrefDropList的第二个形参isCurrentSheet和异常返回值 - 移除了行迭代器中的导出字段
TotalRows
新增功能
ProtectSheet新增支持通过指定的算法保护工作表,支持的算法包括: XOR、MD4、MD5、SHA1、SHA256、SHA384 和 SHA512UnprotectSheet支持通过指定第二个可选参数在移除工作表保护时验证密码- 新增 71 项公式函数: AVERAGEIFS, BETADIST, BETA.DIST, BETAINV, BETA.INV, BINOMDIST, BINOM.DIST, BINOM.DIST.RANGE, BINOM.INV, CHIINV, CHITEST, CHISQ.DIST, CHISQ.DIST.RT, CHISQ.INV, CHISQ.INV.RT, CHISQ.TEST, CONFIDENCE.T, CORREL, COVAR, COVARIANCE.P, CRITBINOM, ERROR.TYPE, EXPON.DIST, EXPONDIST, F.DIST, F.DIST.RT, FDIST, F.INV, F.INV.RT, FINV, FORMULATEXT, F.TEST, FTEST, GAMMA.DIST, GAMMADIST, GAMMA.INV, GAMMAINV, GAMMALN.PRECISE, GAUSS, HOUR, HYPGEOM.DIST, HYPGEOMDIST, INDIRECT, LOGINV, LOGNORM.DIST, LOGNORMDIST, LOGNORM.INV, MODE, MODE.MULT, MODE.SNGL, NEGBINOM.DIST, NEGBINOMDIST, PHI, SECOND, SERIESSUM, SUMIFS, SUMPRODUCT, SUMX2MY2, SUMX2PY2, SUMXMY2, T.DIST, T.DIST.2T, T.DIST.RT, TDIST, TIMEVALUE, T.INV, T.INV.2T, TINV, T.TEST, TTEST, TYPE
- 保存或另存为工作簿时增加对文件扩展名进行检查
- 支持设置工作簿视图模式和显示/隐藏标尺
- 引入依赖库 NFP (number format parser) 以增加对自定义时间、日期和文本类型数字格式的支持,可对包含 19 种语言(南非荷兰语、孟加拉语、汉语、英语、法语、德语、奥地利语、爱尔兰语、意大利语、俄语、西班牙语、泰语、藏语、土耳其语、威尔士语、沃洛夫语、科萨语、彝语和祖鲁语)本地月份名称和 12 小时制格式的数字格式表达式进行解析,相关 issues #660, #764, #1093, #1112 和 #1133
- 新增 API:
SetWorkbookPrOptions和GetWorkbookPrOptions支持设置和获取工作簿中的FilterPrivacy与CodeName属性,以解除部分情况下向工作簿中嵌入 VBA 工程时的限制,相关 issue #1148 - 公式计算引擎支持中缀运算符后包含无参数公式函数的计算
- 支持以文本形式读取布尔型单元格的值
- 通过
AddChart函数添加圆环图时,支持指定圆环图内径大小,解决 issue #1172 - 新增导出 4 项错误信息
ErrPasswordLengthInvalid,ErrUnsupportedHashAlgorithm,ErrUnsupportedNumberFormat,ErrWorkbookExt,以便开发者可根据不同的错误类型进行采取相应处理
兼容性提升
- 提升与 LibreOffice 电子表格应用程序的兼容性,修复在 LibreOffice 中打开的工作表名包含空格时,自动过滤器失效的问题,解决 issue #1122
- 提升对工作簿中替代内容的支持,保留工作簿、工作表以及 drawingML 中的替代内容
- 提升与页面设置中打印质量 DPI 设置属性的兼容性
问题修复
- 修复另存为工作簿时,页面布局属性丢失的问题,解决 issue #1117
- 修复部分情况下,对工作表进行修改后合并单元格区域未更新的问题
- 修复样式解析异常导致的粗体和部分其他字体样式丢失问题,解决 issue #1119
- 修复部分情况下将文档保存为 XLAM / XLSM / XLTM / XLTX 格式后文档损坏的问题
- 单元格样式支持继承行/列样式,以修复对工作表进行修改后合并单元格区域单元格样式不正确的问题,解决 issue #1129
- 修复部分情况下获取单元格样式 ID 错误的问题
- 修复编号为 42 的内建数字格式定义错误的问题
- 修复部分情况下数字精度解析错误的问题
SetCellDefault支持设置非数字类型单元格的值,解决 issue #1139- 修复部分情况下另存为工作簿时,显示或隐藏工作表标签属性丢失的问题,解决 issue #1160
- 修复部分情况下嵌套公式计算错误的问题,解决 issue #1164
- 修复部分情况下公式计算结果精度不准确以及在 x86 和 arm64 架构 CPU 下公式计算结果精度不一致的问题
- 修复部分情况下使用科学记数法表示的数值解析失败的问题
- 修复图表轴最大值最小值为 0 时不起作用的问题
性能优化
- 提高使用行迭代器进行流式读取的性能,当读取包含大规模数据的电子表格文档时,内存开销相较于上一版本降低最高约 50%,内存垃圾回收次数降低约 80%
其他
- Go Modules 依赖模块更新
- 单元测试与文档更新
- 包含简体中文、英语、法语、俄语、日语、韩语、阿拉伯语、德语和西班牙语的多国语言文档网站更新
- 欢迎加入 Slack 频道、Telegram 群组 或技术交流群
DingTalk Group ID:30047129QQ Group ID:207895940

Excelize 发布 2.6.0 版本,功能强大的 Excel 文档基础库的更多相关文章
- Excelize 发布 2.3.0 版本, Go 语言 Excel 文档基础库
Excelize 是 Go 语言编写的用于操作 Office Excel 文档基础库,基于 ECMA-376,ISO/IEC 29500 国际标准.可以使用它来读取.写入由 Microsoft Exc ...
- Excelize 发布 2.2.0 版本, Go 语言 Excel 文档基础库
Excelize 是 Go 语言编写的用于操作 Office Excel 文档基础库,基于 ECMA-376,ISO/IEC 29500 国际标准.可以使用它来读取.写入由 Microsoft Exc ...
- Excelize 2.3.2 发布,Go 语言 Excel 文档基础库,2021 年首个更新
Excelize 是 Go 语言编写的用于操作 Office Excel 文档基础库,基于 ECMA-376,ISO/IEC 29500 国际标准.可以使用它来读取.写入由 Microsoft Exc ...
- Excelize 2.3.1 发布,Go 语言 Excel 文档基础库,支持加密表格文档
Excelize 是 Go 语言编写的用于操作 Office Excel 文档基础库,基于 ECMA-376,ISO/IEC 29500 国际标准.可以使用它来读取.写入由 Microsoft Exc ...
- Excelize 发布 2.6.1 版本,支持工作簿加密
Excelize 是 Go 语言编写的用于操作 Office Excel 文档基础库,基于 ECMA-376,ISO/IEC 29500 国际标准.可以使用它来读取.写入由 Microsoft Exc ...
- 功能强大的Northwoods GoDiagram控件库
Northwoods GoDiagram控件库用于开发图形应用 Northwoods GoDiagram控件库是付费软件,其官方网址为http://www.nwoods.com/ Northwoods ...
- Spring Boot 2.x基础教程:使用Swagger2构建强大的API文档
随着前后端分离架构和微服务架构的流行,我们使用Spring Boot来构建RESTful API项目的场景越来越多.通常我们的一个RESTful API就有可能要服务于多个不同的开发人员或开发团队:I ...
- hadoop完全分布式手动安装(一主多从centos linux各版本均试验成功,文档完整无一遗漏)
hadoop完全分布式手动安装(一主多从centos linux各版本均试验成功,文档完整无一遗漏) 网上的文章99%都是垃圾,我凭良心书写,确保幼儿园同学也能安装成功! 查看系统环境 1.查看 ...
- Node.js开源应用OSN发布初始V1.0版本-见面版本
Nodejs开源应用OSN初始版本V1.0发布,请参考本操作说明文档,有任何问题请留言 Nodejs开源应用OSN发布V1.0版本: OSChina收录地址: OSC收录地址:http://www.o ...
随机推荐
- 攻防世界pwn题:forgot
0x00:查看文件信息 该文件是32位的,canary和PIE保护机制没开. 0x01:用IDA进行静态分析 总览: 该函数就是:v5初值为1,对v2输入一串字符.然后执行一个会根据输入的字符串而修改 ...
- 一个 curl 配置引发的惨案
问题 这两天想装新版本的 node,发现 nvm 一直报下面这个错误.我反复 Google 了,但是并没有找到一条我能用的. 痛苦 我起初一直怀疑是我用的 zsh-nvm 抽疯,所以今天有空就把它还有 ...
- 技术分享 | 想做App测试就一定要了解的App结构
本文节选自霍格沃兹测试开发学社内部教材 app 的结构包含了 APK 结构和 app 页面结构两个部分 APK结构 APK 是 Android Package 的缩写,其实就是 Android 的安装 ...
- 【Spring】AOP实现原理(一):AOP基础知识
AOP相关概念 在学习AOP实现原理之前,先了解下AOP相关基础知识. AOP面向切面编程,它可以通过预编译方式或者基于动态代理对我们编写的代码进行拦截(也叫增强处理),在方法执行前后可以做一些操作, ...
- 合宙AIR105(四): SPI, MAX7219 8x8LED驱动
目录 合宙AIR105(一): Keil MDK开发环境, DAP-Link 烧录和调试 合宙AIR105(二): 时钟设置和延迟函数 合宙AIR105(三): 定时器, 定时器中断和PWM输出 合宙 ...
- SpringBoot + JWT + Redis 开源知识社区系统
「Java学习+面试指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识.准备 Java 面试,首选 JavaGuide!:https://javaguide.cn/ 你好,我是 Guide!这 ...
- 《Ranked List Loss for Deep Metric Learning》CVPR 2019
Motivation: 深度度量学习的目标是学习一个嵌入空间来从数据点中捕捉语义信息.现有的成对或者三元组方法随着模型迭代过程会出现大量的平凡组导致收敛缓慢.针对这个问题,一些基于排序结构的损失取得了 ...
- 万字干货|Java基础面试题(2022版)
目录 概念常识 Java 语言有哪些特点? JVM.JRE和JDK的关系 什么是字节码? 为什么说 Java 语言是"编译与解释并存"? Oracle JDK 和OpenJDK的区 ...
- docker容器数据管理
Docker容器数据卷 Docker中的数据可以存储在类似于虚拟机磁盘的介质中,在Docker中称为数据卷(Data Volume). 数据卷可以用来存储Docker应用的数据,也可以用来在Docke ...
- Eslint 项目笔记
1.代码下一行不要验证报错 代码的上一行打上注释 <--eslint-disable-next-line-->