Excelize 发布 2.4.1 版本,新增并发安全支持 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
luxurioust
V2EX    Go 编程语言

Excelize 发布 2.4.1 版本,新增并发安全支持

  •  
  •   luxurioust
    xuri 2021-08-17 09:45:18 +08:00 1291 次点击
    这是一个创建于 1533 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Excelize 发布 2.4.1 版本,新增并发安全支持

    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

    中文文档: xuri.me/excelize/zh-hans

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

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

    兼容性提示

    Go Modules 包引用地址调整为 github.com/xuri/excelize/v2

    新增功能

    • 新增流式设置工作表列宽度支持,相关 issue #625
    • 新增流式创建合并单元格支持,相关 issue #826
    • 公式计算引擎新增 2 项公式函数支持: BESSELK, BESSELY
    • 公式计算引擎支持自定义名称引用,相关 issue #856
    • 添加图表时支持设置不显示主要横纵坐标轴
    • 通过 AddPivotTable 创建数据透视表支持通过自定义名称动态引用数据源
    • 以下函数新增支持并发安全调用,相关 issue #861
      • AddPictureGetPicture 并发插入 /获取图片
      • RowsCols 并发行 /列迭代
      • SetSheetRow 并发按行赋值
      • SetCellStyle 并发设置单元格样式
      • NewStyle 并发创建样式
    • 导出 24 个内部异常消息

    兼容性提升

    • 提升内部默认 XML 命名空间兼容性,修复部分情况下生成文档损坏的问题
    • 兼容带有非标准页面布局属性数据类型的电子表格文档,避免打开失败的问题
    • 增加内部共享字符表计数
    • 解除通过给定的时间设置单元格的值时,需要协调世界时 (UTC) 的限制,相关 issue #409
    • 增加对内部 XML 控制字符的兼容
    • 重命名导出字段 File.XLSXFile.Pkg
    • 修改 NewSheet, GetSheetIndex, DeleteSheet 对工作表名称大小写不敏感,相关 issue #873
    • 修复条件格式与数据透视表的兼容性问题,解决 issue #883
    • 改进与页面布局中无效的首页编号属性的兼容性
    • SetCellRichText 增加字符数上限检查并修复保留字符丢失问题

    问题修复

    • 修复部分情况下 12/24 制小时时间格式解析异常的问题,解决 issue #823 和 issue #841
    • 修复部分情况下无法通过 GetComments 获取批注的问题,解决 issue #825
    • 修复设置和获取批注时支持多个批注作者,解决 issue #829 和 #830
    • 修复命名空间地址解析异常而产生重复命名空间,导致删除再创建同名工作表后的生成文档损坏问题,解决 issue #834
    • 修复当设置工作表分组默认属性 showOutlineSymbolssummaryBelowsummaryRightfalse 时,设置失效的问题
    • 修复部分情况下 GetRows 返回冗余工作表尾部空行的问题,解决 issue #842
    • 修复部分情况下获取获取单元格的值时,未返回带有公式的空单元格的问题,解决 issue #855
    • 修复部分情况下 IF 公式条件运算错误问题,解决 issue #858
    • 修复通过 GetRowHeight 获取行高度错误的问题
    • 修复部分情况下因范围解析异常导致获取和删除自定义名称错误的问题,解决 issue #879
    • 修复设置自定义名称时关联工作表索引错误的问题
    • 修复设置列样式时已有单元格样式未被更新的问题,解决 issue #467
    • 修复使用非法数据引用范围创建数据透视表时导致的潜在 panic 的问题
    • 修复部分情况下读取数字精度异常的问题,解决 issue #848 和 #852
    • 修复设置数据验证规则时,部分情况下因未进行 XML 字符转义处理导致生成文档损坏的问题,解决 issue #971
    • 修复设置数据验证规则长度校验不准确问题,解决 issue #972
    • 修复由时间解析异常导致的,部分情况下读取带有时间或日期数字格式单元格时 CPU 资源占用率过高问题,解决 issue #974
    • 修复部分情况下,当自定义数字格式为日期时,月份解析失败的问题

    性能优化

    • 通过 Save 保存或 SaveAs 另存文档时的内占用降低约 19%

    其他

    • 修复潜在的代码安全问题 CWE-190 和 CWE-681
    • Go Modules 依赖模块更新
    • 单元测试与文档更新
    • 持续集成服务改用 GitHub Action
    • 包含简体中文、英语、法语、俄语、日语、韩语、阿拉伯语、德语和西班牙语的多国语言文档网站更新
    • 欢迎加入 Slack 频道、Telegram 群组 或技术交流群
      • DingTalk Group ID: 30047129
      • QQ Group ID: 207895940
    3 条回复    2021-08-17 15:15:47 +08:00
    xiangchen2011
        1
    xiangchen2011  
       2021-08-17 10:21:47 +08:00
    沙发,工作很赞
    zackkson1991
        2
    zackkson1991  
       2021-08-17 13:29:17 +08:00
    赞~
    kwanzaa
        3
    kwanzaa  
       2021-08-17 15:15:47 +08:00
    这是原来 360 的吗?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5260 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 05:50 PVG 13:50 LAX 22:50 JFK 01:50
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86