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.0.0 版本发布

  •  
  •   luxurioust ·
    xuri · 2019-04-23 18:40:33 +08:00 · 3698 次点击
    这是一个创建于 2048 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Excelize 是 Go 语言编写的一个用来操作 Office Excel 文档类库,基于 ECMA-376 OOXML Spec。可以使用它来读取、写入 XLSX 文件,相比较其他的开源类库,Excelize 支持操作带有数据透视表、切片器、图表与图片的 Excel 并支持向 Excel 中插入图片与创建简单图表,可应用于各种报表系统中。

    GitHub: github.com/360EntSecGroup-Skylar/excelize

    2019 年 4 月 23 日, 社区正式发布了 2.0.0 版本,该版本包含了很多新功能、错误修复和性能优化。下面是有关该版本更新内容的摘要,完整的更改列表可查看 change log.

    Release Notes

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

    API 更改

    下表列出了 v2.0.0 相比较于 v1.4.1 版本,API 的更改情况:

    * 从版本 v2.0.0 开始,所有行操作方法都使用从 1 开始的 Excel 行编号,早期版本中某些方法中的基于 0 的行编号将不再使用,参考相关 issue #349

    新增功能

    • 新增 DuplicateRowTo() 方法, 支持根据给定的工作表名称(大小写敏感)和行号,在指定行后复制该行
    • 工作表页面布局设置函数 SetPageLayout() 新增对页面布局方向设置的支持,解决了相关 issue #318
    • 工作表页面布局设置函数 SetPageLayout() 新增对页面纸张大小设置的支持

    问题修复

    • 修复部分情况下,在样式格式中未指定单元格颜色填充时,创建了空白填充的问题
    • 修复当工作表数据验证公式超过 225 个字符时,文件打开失败的问题,解决了相关 issue #339
    • 修复部分情况下,删除带有公式的单元格会导致文件损坏的问题,解决了相关 issue #346
    • 修复通过获取批注函数 GetComment(),从包含多个工作表的工作簿获取批注时,返回了错误的工作表名称的问题,解决了相关 issue #345
    • 修复获取工作表全部单元格函数 GetRows() 返回多余的列的问题
    • 修复部分情况下删除包含公式的工作表引起文档损坏的问题

    性能提升

    • 单元格赋值系列函数、添加批注、图片、图表、超链接和形状函数的性能,均获得了大幅提升
    • 新增重复图片检查,将用添加引用代替添加重复图片,解决了相关 issue #359

    下图是 v1.4.1 和 v2.0.0 版本下创建 12800 行 50 列工作表所执行时间和内存使用情况:

    其他

    • 文档内容更新与修正
    • 完善单元测试,增加 go1.12 版本下的单元测试
    12 条回复    2019-04-24 13:07:12 +08:00
    qq316107934
        1
    qq316107934  
       2019-04-23 18:42:50 +08:00
    前排支持下,如果无法直接兼容 XLS,能否提供一个转换接口呢?
    xrlin
        2
    xrlin  
       2019-04-23 18:50:14 +08:00 via Android
    支持
    mritd
        3
    mritd  
       2019-04-23 20:13:46 +08:00 via iPhone
    支持,go 生态越来越棒了
    seaguest
        4
    seaguest  
       2019-04-23 20:26:56 +08:00
    之前用过 https://github.com/tealeg/xlsx,感觉不错。
    简单看了一下,还视觉的 tealeg 的 API 更简洁,直观一些。
    hujianxin
        5
    hujianxin  
       2019-04-23 21:45:05 +08:00
    可以的,很棒
    hujianxin
        6
    hujianxin  
       2019-04-23 21:47:37 +08:00
    @seaguest 这两个库看着有点像,360 这个貌似是在你说的这个库的基础上修改完善的
    wangsongyan
        7
    wangsongyan  
       2019-04-23 22:48:25 +08:00
    很好用,一直在用
    morty961
        8
    morty961  
       2019-04-23 22:52:58 +08:00 via Android
    支持读加密了吗
    wyntalgeer
        9
    wyntalgeer  
       2019-04-24 09:05:35 +08:00
    360 ? emmmmm 还是 star 一下
    myyou
        10
    myyou  
       2019-04-24 09:58:50 +08:00
    这个库有没有像 python xlsxwriter 的 xlsxwriter.Workbook(file_path, {'constant_memory': True})功能,无乱写入多大的数据,都只是使用固定内存?
    ensonmj
        11
    ensonmj  
       2019-04-24 12:57:54 +08:00
    @seaguest 我也是用的这个,当初选择时看到 360 下意识就避开了。。。
    jifengg
        12
    jifengg  
       2019-04-24 13:07:12 +08:00
    go 这方面不错,node 的找了好久,没有一个好用的开源项目。支持插入图片的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1450 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 17:28 · PVG 01:28 · LAX 09:28 · JFK 12:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.