Golang Go语言 Excelize 发布 2.6.1 版本更新,支持工作簿加密保护
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)。
开源代码
GitHub: github.com/xuri/excelize
Gitee: gitee.com/xurime/excelize
中文文档: xuri.me/excelize/zh-hans
2022 年 8 月 22 日,社区正式发布了 2.6.1 版本,该版本包含了多项新增功能、错误修复和兼容性提升优化。下面是有关该版本更新内容的摘要,完整的更改列表可查看 changelog。
此版本中最显著的变化包括:
兼容性提示
- 重命名导出类型
TabColor
为TabColorRGB
- 重命名导出常量
TotalColumns
为MaxColumns
- 重命名导出变量
ErrMaxFileNameLength
为ErrMaxFilePathLength
- 重命名导出变量
ErrWorkbookExt
为ErrWorkbookFileFormat
- 移除了导出变量
ErrEncrypt
- 工作表名称不再区分大小写
新增功能
- 新增 34 项公式函数: CONVERT, COVARIANCE.S, DAVERAGE, DAYS360, DCOUNT, DCOUNTA, DGET, DMAX, DMIN, DPRODUCT, DSTDEV, DSTDEVP, DSUM, DVAR, DVARP, EDATE, EOMONTH, EUROCONVERT, GROWTH, HYPERLINK, MINVERSE, MMULT, NETWORKDAYS, NETWORKDAYS.INTL, PEARSON, RSQ, SKEW.P, SLOPE, STDEVPA, STEYX, TREND, WEEKNUM, WORKDAY, WORKDAY.INTL
- 新增
DeleteComment
函数支持删除单元格批注,相关 issue #849 - 通过
AddShape
函数添加形状时支持指定宏 - 新增对 1900 和 1904 日期系统的支持,相关 issue #1212
- 新增更新超链接支持,相关 issue #1217
- 通过
AddPicture
添加图片时,现已允许插入 EMF 、WMF 、EMZ 和 WMZ 格式图片,相关 issue #1225 - 优化打开工作簿失败时的错误提示信息,新增导出变量
ErrWorkbookPassword
定义了打开工作簿时密码验证失败的错误提示信息,以便开发者可根据不同的错误类型进行采取相应处理 - 新增导出常量
MinFontSize
、MinColumns
和MaxCellStyles
以定义最小字号、最小列号和单元格样式数量上限 - 公式引擎新增数组公式支持
- 支持根据给定的密码对工作簿进行加密保护,相关 issue #199
- 设置单元格富文本格式时,支持通过指定 RichTextRun 中的 vertAlign 属性设置上标和下标
- 通过
DeleteDataValidation
函数删除数据验证时,支持省略第二个引用区域参数以删除工作表中的全部数据验证,相关 issue #1254 - 公式计算引擎支持带有百分比符号的条件比较表达式
- 公式计算引擎支持依赖依赖公式计算,相关 issue #1262
- 新增文档打开选项
MaxCalcIterations
以支持指定公式迭代计算的最多迭代次数 - 新增导出类型
ColorMappingType
以定义颜色转换枚举类型 - 插入或删除行列时支持自动调整表格区域
- 支持设置与获取工作表标签颜色索引、主题和色调,相关 issue #1283
- 行迭代器新增函数
GetRowOpts
支持读取行属性,相关 issue #1296
兼容性提升
- 提升与内部包含无效样式计数工作簿的兼容,解决 issue #1211
- 提升与 Google Sheet 的兼容性,解决 issue #1244 和 #1314
- 流式写入器将不再为值为 nil 的单元格写入工作表,解决 issue #1299
问题修复
- 修复当数据透视表中值区间与行 /列区间包含相同字段时,生成的工作簿损坏问题,解决 issue #1203
- 修复因缺少单元格类型检查导致的获取单元格富文本内容异常问题,解决 issue #1213
- 修复读取单元格值时,因单元格类型推断错误导致的读取结果异常问题,解决 issue #1219
- 修复读取带有 0 占位符数字格式表达式样式的单元格时,值为空的问题,解决 #1312 和 #1313
- 修复部分情况下设置单元格值时,单元格继承行列样式有误的问题,解决 issue #1163
- 修复在不包含视图属性设置的工作表中设置窗格时将出现 panic 的问题
- 修复部分情况下公式引擎多参数公式计算结果有误的问题
- 修复因内部页眉页脚属性定义顺序有误导致的生成工作簿损坏问题,解决 issue #1257
- 修复部分情况下单元格赋值失效的问题,解决 issue #1264
- 修复设置工作表视图属性时可能出现的 panic
- 修复部分情况下因工作表核心属性中 dcterms 属性为空,导致生成的工作簿损坏问题
- 修复新建工作表后工作簿属性丢失问题,解决 issue #1298
性能优化
- 提高按行赋值和合并单元格的性能,恢复因修复 issue #1129 时导致的性能下降
- 优化了公式计算引擎的性能
- 降低
AddComment
添加批注时的内存开销并减少耗时,解决 issue #1310
其他
- Go Modules 依赖模块更新
- 单元测试与文档更新,修复单元测试在 go1.19 下的兼容性问题
- 包含简体中文、英语、法语、俄语、日语、韩语、阿拉伯语、德语和西班牙语的多国语言文档网站更新
致谢
感谢 Excelize 的所有贡献者,以下是为此版本提交代码的贡献者列表:
- [@JDavidVR](/user/JDavidVR) (David)
- [@sceneq](/user/sceneq)
- [@Juneezee](/user/Juneezee) (Eng Zer Jun)
- [@MichealJl](/user/MichealJl) (jialei)
- [@ww1516123](/user/ww1516123)
- [@z-hua](/user/z-hua) (z.hua)
- [@xdlrt](/user/xdlrt) (yeshu)
- [@eaglexiang](/user/eaglexiang) (Eagle Xiang)
- [@MJacred](/user/MJacred)
- [@ReganYue](/user/ReganYue) (Regan Yue)
- [@thomascharbonnel](/user/thomascharbonnel) (Thomas Charbonnel)
- [@ee0703](/user/ee0703) (EE)
- [@NaturalGao](/user/NaturalGao) (NaturalGao)
- [@Sangua633](/user/Sangua633)
Golang Go语言 Excelize 发布 2.6.1 版本更新,支持工作簿加密保护
更多关于Golang Go语言 Excelize 发布 2.6.1 版本更新,支持工作簿加密保护的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
一直在用,非常感谢
更多关于Golang Go语言 Excelize 发布 2.6.1 版本更新,支持工作簿加密保护的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
支持支持,提个常用小功能建议,增加个数组 /切片 Struct 写入方法,不用写 header 啥的,直接反射拿 tag 也好或者直接字段名也好,每次写导出写 header 感觉好烦
感谢反馈,有网友在相关 [issue #619]( https://github.com/xuri/excelize/issues/619) 中提供一个解决方法可以参考下
谢谢,目前我也是这样用的,但是不想每个项目都实现一遍,希望官方能提供一个这样的方法
针对“Golang Go语言 Excelize 发布 2.6.1 版本更新,支持工作簿加密保护”的帖子,以下是我的专业回复:
Excelize 2.6.1版本的发布是Go语言在电子表格处理领域的一大进步。此版本新增了对工作簿的加密保护功能,极大地提升了数据的安全性。
Excelize作为一个纯Go编写的库,一直致力于为开发者提供高效、便捷的Excel文件读写功能。它支持多种Excel文档格式,包括XLAM、XLSM、XLSX等,并高度兼容带有复杂组件的文档。此次更新不仅增强了数据保护能力,还带来了一系列其他改进。
具体来说,2.6.1版本新增了多项功能,如DeleteComment函数支持删除单元格批注,AddShape函数添加形状时支持指定宏等。同时,它还修复了多个错误,优化了性能,并提升了与其他软件的兼容性。
此外,Excelize还提供了丰富的API和流式读写功能,使得处理大规模数据的工作簿变得更加容易。开发者可以利用这些功能来创建、修改和读取Excel文件,满足各种业务需求。
综上所述,Excelize 2.6.1版本的发布为Go语言开发者在处理Excel文件时提供了更多选择和更好的安全保障。