Excelize 发布 2.6.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.6.1 版本更新,支持工作簿加密保护

  •  
  •   luxurioust
    xuri 2022-08-22 10:04:22 +08:00 1545 次点击
    这是一个创建于 1161 天前的主题,其中的信息可能已经有所发展或是发生改变。

    github.com/xuri/excelize

    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

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

    兼容性提示

    • 重命名导出类型 TabColorTabColorRGB
    • 重命名导出常量 TotalColumnsMaxColumns
    • 重命名导出变量 ErrMaxFileNameLengthErrMaxFilePathLength
    • 重命名导出变量 ErrWorkbookExtErrWorkbookFileFormat
    • 移除了导出变量 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 定义了打开工作簿时密码验证失败的错误提示信息,以便开发者可根据不同的错误类型进行采取相应处理
    • 新增导出常量 MinFontSizeMinColumnsMaxCellStyles 以定义最小字号、最小列号和单元格样式数量上限
    • 公式引擎新增数组公式支持
    • 支持根据给定的密码对工作簿进行加密保护,相关 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 (David)
    • @sceneq
    • @Juneezee (Eng Zer Jun)
    • @MichealJl (jialei)
    • @ww1516123
    • @z-hua (z.hua)
    • @xdlrt (yeshu)
    • @eaglexiang (Eagle Xiang)
    • @MJacred
    • @ReganYue (Regan Yue)
    • @thomascharbonnel (Thomas Charbonnel)
    • @ee0703 (EE)
    • @NaturalGao (NaturalGao)
    • @Sangua633
    4 条回复    2022-08-23 09:45:46 +08:00
    playniuniu
        1
    playniuniu  
       2022-08-22 10:28:55 +08:00
    一直在用,非常感谢
    chengxiao
        2
    chengxiao  
       2022-08-22 18:02:01 +08:00
    支持支持,提个常用小功能建议,增加个数组 /切片 Struct 写入方法,不用写 header 啥的,直接反射拿 tag 也好或者直接字段名也好,每次写导出写 header 感觉好烦
    luxurioust
        3
    luxurioust  
    OP
       2022-08-22 19:31:48 +08:00
    @chengxiao 感谢反馈,有网友在相关 [issue #619]( https://github.com/xuri/excelize/issues/619) 中提供一个解决方法可以参考下
    chengxiao
        4
    chengxiao  
       2022-08-23 09:45:46 +08:00
    @luxurioust 谢谢,目前我也是这样用的,但是不想每个项目都实现一遍,希望官方能提供一个这样的方法
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     932 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 18:34 PVG 02:34 LAX 11:34 JFK 14:34
    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