Go 语言是一门适合用于编写高效且并发的 Web 应用程序的编程语言,同时也可以使用它进行数据处理和分析。在数据处理和分析过程中,Excel 是一种常用的电子表格软件,很多情况下需要将数据导入到 Excel 中进行分析和处理。在 Go 语言中,可以使用两种不同的 excelize 包来操作 Excel 文件,分别是 xuri/excelize 和 360EntSecGroup-Skylar/excelize。

  1. github.com/xuri/excelize/v2

xuri/excelize 是一个用于操作 Excel 文件的第三方库,可以通过以下方式导入:

import "github.com/xuri/excelize/v2"

xuri/excelize 是 Go 语言社区中最受欢迎的 Excel 文件操作库之一,它提供了丰富的功能,可以用于读取、修改和创建 Excel 文件,包括但不限于以下功能:

  • 读取 Excel 文件中的数据
  • 修改 Excel 文件中的数据
  • 在 Excel 文件中插入图片
  • 在 Excel 文件中添加图表
  • 在 Excel 文件中设置打印选项
  • 对 Excel 文件进行加密
  • 提供更多的文件格式支持(例如 CSV、XML)

以下是 xuri/excelize 读取 Excel 文件的示例代码:

package mainimport ("fmt""github.com/xuri/excelize/v2"
)func main() {file, err := excelize.OpenFile("Book1.xlsx")if err != nil {fmt.Println(err)return}cells := file.GetRows("Sheet1")for _, row := range cells {for _, colCell := range row {fmt.Print(colCell, "\t")}fmt.Println()}
}
  1. github.com/360EntSecGroup-Skylar/excelize/v2

360EntSecGroup-Skylar/excelize 是由 360 企业安全组(360 Enterprise Security Group)开发的一个 Excel 文件处理库,可以使用以下方式导入:

import "github.com/360EntSecGroup-Skylar/excelize/v2"

相较于 xuri/excelize,360EntSecGroup-Skylar/excelize 提供了更多的功能,包括但不限于以下功能:

  • 读取 Excel 文件中的数据
  • 修改 Excel 文件中的数据
  • 在 Excel 文件中插入图片
  • 在 Excel 文件中添加图表
  • 在 Excel 文件中设置打印选项
  • 对 Excel 文件进行加密
  • 提供更多的文件格式支持(例如 CSV、XML)
  • 提供更多的单元格格式化选项(例如设置单元格样式、设置单元格宽度和高度)

以下是 360EntSecGroup-Skylar/excelize 读取 Excel 文件的示例代码:

package mainimport ("fmt""github.com/360EntSecGroup-Skylar/excelize/v2"
)func main() {file, err := excelize.OpenFile("Book1.xlsx")if err != nil {fmt.Println(err)return}cells := file.GetRows("Sheet1")for _, row := range cells {for _, colCell := range row {fmt.Print(colCell, "\t")}fmt.Println()}
}

实战:

// @description: SharedImport 导入
// @param {string} filePath
// @param {int64} commitID
// @param {http.Header} header
// @return {*}
func SharedImport(filePath, fileName string, commitID int64, header http.Header) (int64, error) {plog.Info("SharedImport", "processing cpp file with file path specified: %v", filePath)f, err := excelize.OpenFile(filePath)if err != nil {plog.Error("", "%v", err)return -1, err}sheetList := garray.NewStrArrayFrom(f.GetSheetList())plog.Info("SharedImport", "share file contains sheet list: %v", sheetList.Slice())if sheetList.Contains(sharedbilltype.SHARE_INFOMATION_CN) {plog.Info("SharedImport", "processing CN share template, finding key cells with chinese")err = ShareCNImport(f, filePath, fileName, commitID, header)if err != nil {plog.Error("", "%v", err)return -1, err}return commitID, nil} else if sheetList.Contains(sharedbilltype.SHARE_INFOMATION_EN) {plog.Info("SharedImport", "processing EN share template, finding key cells with english")err = ShareENImport(f, filePath, fileName, commitID, header)if err != nil {plog.Error("", "%v", err)return -1, err}return commitID, nil} else {msgCN := sharedbilltype.ERR_INVALID_SHARE_TEMPLATE_CNmsgEN := sharedbilltype.ERR_INVALID_SHARE_TEMPLATE_ENoverviewMsgCN := sharedbilltype.ERR_OVERVIEW_WRONG_FILE_CNoverviewMsgEN := sharedbilltype.ERR_OVERVIEW_WRONG_FILE_ENplog.Warn("SharedImport", msgCN)plog.Warn("SharedImport", msgEN)plog.Warn("SharedImport", overviewMsgCN)plog.Warn("SharedImport", overviewMsgEN)err = sharedbillrdb.SaveTInfShareMainValidate([]*sharedbilltype.TableTInfBillShareMainValidate{NewInvalidFormatRecord(filePath, commitID, msgCN, msgEN, 0, "", 0, "", 0, "", header, fileName),NewInvalidFormatOverviewRecord(filePath, commitID, 0, 0, overviewMsgCN, overviewMsgEN, header, fileName),})if err != nil {plog.Error("", "%v", err)return -1, err}return commitID, nil}
}

总结:

github.com/xuri/excelize/v2github.com/360EntSecGroup-Skylar/excelize/v2 都是 Golang 中用于操作 Excel 文件的库,它们的区别在于它们是由不同的开发者维护的,它们的功能、性能和使用方式也略有不同。

github.com/xuri/excelize/v2 是由 Xuri 开发的 Excel 文件处理库,它可以读取、写入和编辑 XLSX 格式的 Excel 文件,支持大量的 Excel 功能,如图表、数据透视表、条件格式等,同时还提供了对 PDF 和 HTML 导出的支持。这个库的使用文档详细,具有良好的可维护性和易用性。

github.com/360EntSecGroup-Skylar/excelize/v2 是由 360 安全团队开发的 Excel 文件处理库,它也可以读取、写入和编辑 XLSX 格式的 Excel 文件,支持大量的 Excel 功能,如公式、图表、数据透视表、条件格式等,同时还提供了对 CSV、TSV 和 JSON 导出的支持。这个库的使用文档相对较少,但是它具有很好的性能和稳定性。

因此,选择使用哪个 Excel 处理库取决于您的需求和偏好。如果您需要处理较为复杂的 Excel 文件并导出到 PDF 或 HTML 文件中,那么您可以选择 github.com/xuri/excelize/v2;如果您需要快速处理大量的 Excel 文件并导出到 CSV、TSV 或 JSON 文件中,那么您可以选择 github.com/360EntSecGroup-Skylar/excelize/v2

如果贵公司有如下用户痛点,可前往 联蔚盘云官网 进行试用

账单管理复杂
· 维度单一的公有云账单服务
· 不支持跨云的公有云账单服务
· 耗时易错的人工账单整理预算管理不清晰
· 缺乏清晰的应用预算情况视角
· 复杂的共享资源平摊计算
· 缺乏多云预算总览视角无明确成本优化建议
· 人工整理分析,耗时耗力
· 缺乏多云成本变化总览视角
· 可持续性资源成本优化需求

有兴趣了解更详细的信息,请前往联蔚盘云产品官网!

联蔚盘云官网-致力于全生命周期多云管理服务

若您想试用FinOps产品,点击试用申请链接!

FinOps saas-联蔚盘云 

若您想关注最新的产品动态,请关注公众号!

golang操作excel两种excelize包对比相关推荐

  1. Golang操作Excel的模块Excelize学习总结2-设置单元格数据

    Golang操作Excel的模块Excelize – 设置单元格的值 新建excel文件 excelize.NewFile() 获取当前活动的sheet页索引 func (f *File) GetAc ...

  2. SilkTest 对 Excel 表操作的两种方式

    SilkTest 对 Excel 表操作的两种方式  这两种方式都是对 SilkTest 运用的最基础的东西,我写得也比较简单.国内这方面的资料实在太少,对初学者可能有帮助. 方式一 : Data D ...

  3. Java操作Excel三种方式POI、Hutool、EasyExcel

    Java操作Excel三种方式POI.Hutool.EasyExcel 1. Java操作Excel概述 1.1 Excel需求概述 1.2 Excel操作三种方式对比 2. ApachePOIExc ...

  4. Android中实现SQLite数据库CRUD操作的两种方式

    Android中实现SQLite数据库CRUD操作的两种方式 SQLite是一款轻量级的关系型数据库,具有运行速度.占用资源少的特点.通常只需要几百KB的内存就够了,因此特别适合在移动设备上使用.SQ ...

  5. WCF 客户端调用服务操作的两种方法

    本节的主要内容:1.通过代理类的方式调用服务操作.2.通过通道的方式调用服务操作.3.代码下载 一.通过代理类的方式调用服务操作(两种方式添加代理类) 1.手动编写代理类,如下: 客户端契约: 1 u ...

  6. java制作oracle程序,Java程序操作Oracle两种方式之简单实现

    Java程序操作Oracle两种方式之简单实现 1.通过JDBC-ODBC桥连接Oracle数据库 (1)创建odbc源,在控制面板->管理工具->数据源(odbc)中添加DSN,比如取名 ...

  7. poi模板操作word两种实现方式

    目录 1.手动创建模板 1.1 jar包导入 1.2 Excel工具编写 1.3 创建模板 1.4 调用模板生成接口 1.5 重写 WordExportUtil.exportWord07(templa ...

  8. java区分不同的excel_Java处理excel两种不同的方式

    1.背景说明 业务中有时候会碰到利用java 处理excel文件(生成.下载.上传),通常生成一个excel文件会把它写入到机器的一个临时路径,但有时候完全没必要把它存下来,只需要在内存中把这个文件转 ...

  9. delphi 读取excel 两种方法

    两种方法,一是用ADO连接,问题是Excel文件内容要规则,二是用OLE打开,但操作就没有象 操作数据库那么方便了. 一.用ADO连接: 设置属性ConnetionString  选择 Microso ...

最新文章

  1. UIView淡入淡出动画
  2. 小米 Play 发布:CPU+GPU 双 Turbo,每个月送 10 GB 流量
  3. 【原】移动端界面的适配
  4. 网络编程学习笔记(ICMPv6和IPv6套接口选项)
  5. les物流执行系统_物流LES系统上线啦
  6. 玩转oracle 11g(15):命令学习3
  7. 《大数据》杂志——大数据容灾备份技术挑战和增量备份解决方案
  8. MySQL表联合查询 理论基础:外键、操作关联表(一)
  9. Netty Reactor线程模型与EventLoop详解
  10. python快速入门教程-Python 开发 14 天快速入门
  11. 程序员面试金典——3.7猫狗收养所
  12. BI工具那么多 该如何选择
  13. c++ 网络编程课设入门超详细教程 ---目录
  14. 山东理工大学ACM平台题答案关于C语言 1231 绝对值排序
  15. 一分六钱用计算机怎么算,交行信用卡分期付款计算器:5000元分6期手续费
  16. UG二次开发入门--一个简单的示例
  17. com.apple.Boot.plist 和SMBIOS.plist 的设置
  18. leetcode1114. 按序打印 靡不有初,鲜克有终,小白加油加油加油
  19. 在android手机上运行PHP 1
  20. 谷歌验证码reCAPTCHA的运用

热门文章

  1. 短发狮子座少女:男朋友绝对不可以打LOL
  2. 使用python采集MDB数据到SQL server数据库
  3. Javascript数据类型及函数
  4. 个人整理的学习信息安全相关的网站、软件
  5. 富华力鼎:短视频拍摄技巧有哪些
  6. 使用量桨PaddleQuantum实现有效压缩量子数据的量子自动编码器
  7. 茶饮奶茶小程序解决方案
  8. 使用数学软件Matlab建模画图程序汇总
  9. 联系人之推荐添加好友
  10. 点两下计算机打不开了,双击我的电脑打不开时的解决方法