Go 语言 Excel 文档开源基础库基础库 Excelize 发布 2.7.0 版本 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
luxurioust
V2EX    Go 编程语言

Go 语言 Excel 文档开源础库基础库 Excelize 发布 2.7.0 版本

  •  1
     
  •   luxurioust
    xuri 2023-01-09 14:42:31 +08:00 1954 次点击
    这是一个创建于 1013 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Go 语言 Excel 文档开源基础库基础库 Excelize 发布 2.7.0 版本

    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

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

    版本说明

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

    兼容性提示

    • 升级至该版本需要您使用的 Go 语言为 1.16 或更高版本,以迁移不再支持的标准库 ioutil
    • 当给定工作表名称中存在无效字符时将返回错误,不再自动忽略无效字符
    • GetCellStyle 函数不再返回合并单元格区域左上角单元格的样式
    • 重命名以下 5 个导出数据类型和错误常量,具体更改详见官方文档中的更新说明
    • 移除了 54 项导出类型,具体更改详见官方文档中的更新说明
    • 移除了 2 个导出常量:OrientationPortraitOrientationLandscape
    • 修改了以下 21 个函数的签名,使用结构体引用代替此前以 JSON 格式表示的选项参数,具体更改详见官方文档中的更新说明
    • 引入了 8 项新的函数代替现有函数,具体更改详见官方文档中的更新说明
    • CellType 枚举值中添加 CellTypeFormula, CellTypeInlineString, CellTypeSharedString 并移除了 CellTypeString
    • 对添加批注 AddComment 函数的签名进行了更改,支持创建富文本批注,相关 issue #1204
    • 当 XML 反序列化异常时将返回错误以代替输出日志,函数 GetComments, GetDefaultFontSetDefaultFont 增加了 error 类型的错误返回值

    新增功能

    • 新增 GetDataValidationsGetConditionalFormats 函数以支持获取数据验证设置和条件格式,相关 issue #827
    • 新增 ProtectWorkbookUnprotectWorkbook 以提供工作簿保护设置支持
    • 新增 SetSheetCol 函数以支持按列设置单元格的值,相关 issue #1247
    • 新增 GetColStyle 函数以支持设置列样式,相关 issue #1293
    • 新增 SetSheetBackgroundFromBytes 函数以支持根据给定的图片数据设置工作表背景图片,相关 issue #1405
    • 新增导出变量 IndexedColorMapping 以支持内建索引颜色转换
    • 新增 20 项导出类型: AutoFilterListOptions, AutoFilterOptions, Chart, ChartAxis, ChartDimension, ChartLegend, ChartLine, ChartMarker, ChartPlotArea, ChartSeries, ChartTitle, ConditionalFormatOptions, PaneOptions, Panes, GraphicOptions, Shape, ShapeColor, ShapeLine, ShapeParagraphTableOptions
    • 新增 2 项公式函数: AGGREGATE 和 SUBTOTAL
    • SaveWriteWriteTo 函数支持指定保存选项,相关 issue #744
    • 使用 AddChart 函数添加图表时,支持为折线图设置是否使用平滑折线,相关 issue #1290
    • 使用 AddChart 函数添加图表时,支持设置自定义折线图线条颜色,相关 issue #1345
    • 使用 AddChart 函数添加图表时,支持设置自定义坐标轴字体样式,相关 issue #320
    • 添加图表函数 AddChart 支持创建三维折线图
    • 以下函数新增并发安全支持:SetColWidthGetColWidthSetColVisibleGetColVisibleSetColStyleGetColStyle
    • 设置样式时,当给定的样式 ID 不存在时将返回错误,相关 issue #1323
    • 流式按行赋值时,若行号未递增将返回错误,以避免生成的工作簿损坏,相关 issue #1139
    • 按行流式写入工作表时,支持通过指定 RowOpts 为单元格设置样式,相关 issue #1354
    • 支持流式设置窗格,相关 issue #1047
    • 支持流式设置行内富文本单元格
    • 支持流式插入分页符
    • 新增 7 项导出错误信息: ErrUnprotectWorkbookErrUnprotectWorkbookPasswordErrStreamSetPanesErrSheetNameBlankErrSheetNameInvalidErrSheetNameLengthErrSheetNameSingleQuote,以便开发者可根据不同的错误类型进行采取相应处理
    • 新增 5 项导出数据类型: HeaderFooterOptionsPageLayoutMarginsOptionsPageLayoutOptionsSheetPropsOptionsViewOptions
    • 支持设置分级显示的明细数据方向
    • 支持读取和设置单元格字体的主题颜色和色调,相关 issue #1369
    • 支持读取带有符合 ISO 8061 标准的时间类型单元格的值
    • 支持设置和读取带有内建颜色索引的字体颜色
    • 工作簿关闭函数将清理由流式写入器生成的磁盘缓存文件
    • 支持添加或删除列时自动调整受影响的列样式
    • 通过 AddPicture 添加图片时,现已允许插入 SVG 格式图片

    兼容性提升

    • 流式写入单元格时将以行内字符类型存储字符型单元格的值,相关 issue #1377
    • 保存工作簿时将跳过工作表中的不带有样式和属性的空白行,以减少生成文档的体积,相关 issue #1383

    问题修复

    • 修复部分情况下读取带有内建数字格式样式的浮点数精度有误问题,解决 issue #1328 ,#1368 和 #1373
    • 修复部分情况下读取带有 AM/PM 数字格式样式的单元格有误问题,解决 issue #1338
    • 修复部分情况下删除批注时由于数组下标越界导致的 panic ,解决 issue #1343
    • 修复部分情况下读取单元格的值时出现 panic 的问题,解决 issue #1384 和 #1415
    • 修复部分情况下误将文本解析为浮点型数值的问题,解决 issue #1360
    • 修复使用空字符创建工作表后生成的工作簿损坏问题,解决 issue #1361
    • 修复向工作表添加图片后,获取该图片内容为空的问题
    • 修复部分情况下插入行列后生成的工作簿损坏问题
    • 删除单元格公式时将删除公式计算链中的共享单元格引用,以修复部分情况下生成的文档损坏问题
    • 修复部分情况下未对工作表名称特殊字符及长度做正确处理的问题,解决 issue #1328
    • 修复部分情况下公式函数 OR 计算结果有误的问题
    • 修复在带有单一单元格区域引用的工作表中插入行列时,将收到异常的问题
    • 修复获取带有单一单元格区域引用合并单元格区域时,收到异常的问题
    • 修复部分情况下读取富文本单元格的值不完整问题
    • 修复流式写入时未转义 XML 字符导致的文档损坏问题,解决 issue #1391
    • 修复公式计算函数 ADDRESS 在工作表名称为空时计算结果有误的问题,解决 issue #1396
    • 修复部分情况下添加图片结果有误的问题,解决 issue #1404

    性能优化

    • 提高流式合并单元格性能,相较于上一版本,耗时最高降低约 90%,内存使用最高减少约 86%
    • 优化按行流式写入工作表 SetRow 函数的性能,相较于上一版本,耗时最高降低约 19%

    其他

    • Go Modules 依赖模块更新
    • 单元测试与文档更新
    • 优化内部变量与函数命名
    • 包含简体中文、英语、法语、俄语、日语、韩语、阿拉伯语、德语和西班牙语的多国语言文档网站更新

    致谢

    感谢 Excelize 的所有贡献者,以下是为此版本提交代码的贡献者列表:

    • cdenicola (Cooper de Nicola)
    • chenliu1993
    • davidborry
    • patsak (Kostya Privezentsev)
    • dafengge0913
    • Beeb0p (Artem Tarasenko)
    • invzhi
    • zhangzitao (Zitao)
    • jtwatson (Joseph Watson)
    • carbin-gun (charles.deng)
    • harrison3000 (Harrison)
    • strivek (GaoFei)
    • gonghaibinx
    • martinmr (Martin Martinez Rivera)
    • zclark (Zach Clark)
    • March0715 (March)
    • renxiaotu
    • devloppper
    • jianxinhou
    • nesstord
    • Bayzet (Bayzet Tlyupov)
    • guoweikuang (郭伟匡)
    • qinyuguang (Gin)
    • liron-l (Liron Levin)
    6 条回复    2023-03-07 09:11:53 +08:00
    goophy
        1
    goophy  
       2023-01-09 14:44:12 +08:00   1
    一直在用这个库,感谢!
    devtk
        2
    devtk  
       2023-01-09 15:24:52 +08:00   1
    非常好用的库!强烈推荐
    allgy
        3
    allgy  
       2023-01-09 16:40:51 +08:00   1
    已经成为了 go 生态 excel 第一选择的库
    stach
        4
    stach  
       2023-01-09 19:29:27 +08:00   1
    支持一下,辛苦
    wangsongyan
        5
    wangsongyan  
       2023-01-10 09:46:57 +08:00   1
    非常好用的库,赞!
    eoo
        6
    eoo  
       2023-03-07 09:11:53 +08:00   1
    非常好用的库,赞!
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2535 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 06:29 PVG 14:29 LAX 23:29 JFK 02:29
    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