Excelize 2.5.0 发布, 2022 年首个更新 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
hixuri
V2EX    Go 编程语言

Excelize 2.5.0 发布, 2022 年首个新

  •  3
     
  •   hixuri
    xuri 2022-01-04 12:55:31 +08:00 2359 次点击
    这是一个创建于 1456 天前的主题,其中的信息可能已经有所发展或是发生改变。

    github.com/xuri/excelize

    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 函数关闭工作簿和数据流
    • 修改 ReadZipReaderFile 的实现, 支持通过选项指定解压至内存或文件系统
    • 移除了不必要的导出变量 XMLHeader,可使用 encoding/xml 包的 xml.Header 代替
    • 移除了不再使用的导出变量 ErrToExcelTime

    新增功能

    • 新增 API: SetRowStyle 支持设置整行样式, 相关 issue #990
    • 新增 API: GetCellType 支持获取单元格数据类型, 相关 issue #417 和 #520
    • 新增 API: SetAppPropsGetAppProps 支持设置与获取工作簿应用程序属性, 相关 issue #1095
    • GetCellValue, GetRows, GetCols, RowsCols 支持指定是否读取单元格原始值而不应用数字格式表达式, 相关 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 #1096
    • 优化读取工作表列表性能
    • 优化设置列样式存储,缩小生成的文档体积,解决 issue #1057

    其他

    • Go Modules 依赖模块更新
    • 单元测试与文档更新
    • 包含简体中文、英语、法语、俄语、日语、韩语、阿拉伯语、德语和西班牙语的多国语言文档网站更新
    • 欢迎加入 Slack 频道、Telegram 群组 或技术交流群 DingTalk Group ID: 30047129 QQ Group ID: 207895940

    Excelize 技术交流群

    3 条回复    2022-01-07 00:02:00 +08:00
    69444091
        1
    69444091  
       2022-01-04 15:20:39 +08:00
    abccccabc
        2
    abccccabc  
       2022-01-04 17:33:20 +08:00
    楼主辛苦了,Excelize 应该是最好用的 go 操作 excl 组件
    anxn
        3
    anxn  
       2022-01-07 00:02:00 +08:00 via Android
    点进去发现 star 过了 库很优秀
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1072 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 23:07 PVG 07:07 LAX 15:07 JFK 18:07
    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