Go语言操作Excel利器之excelize类库详解

作者:1个俗人 时间:2024-04-28 09:12:47 

前言

在开发中一些需求需要通过程序操作excel文档,例如导出excel、导入excel、向excel文档中插入图片、表格和图表等信息,使用Excelize就可以方便的满足上述需求,本文主要总结一下Excelize的使用,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教。

Excelize简介

Excelize是Go语言编写的一个用来操作Office Excel文档类库,可以使用它来读取、写入Excel文件,还支持向Excel中插入图片、图标、以及工具函数等,功能相对比较齐全,对于基本的需求完全够用,废话不多说,直接开干。

安装

go get github.com/xuri/excelize
# 如果你是通过Go Module管理的包,执行以下安装
go get github.com/xuri/excelize/v2

导出 Excel 文档

package main

import (
   "fmt"

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

func main() {
   f := excelize.NewFile()
   // 创建一个工作表
   index := f.NewSheet("Sheet2")
   // 设置单元格的值
   f.SetCellValue("Sheet2", "A2", "Hello world.")
   f.SetCellValue("Sheet1", "B2", 100)
   // 设置工作簿的默认工作表
   f.SetActiveSheet(index)
   // 根据指定路径保存文件
   if err := f.SaveAs("export.xlsx"); err != nil {
       fmt.Println(err)
   }
}

读取Excel文档

package main

import (
   "fmt"

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

func main() {
   f, err := excelize.OpenFile("Book1.xlsx")
   if err != nil {
       fmt.Println(err)
       return
   }
   defer func() {
       if err := f.Close(); err != nil {
           fmt.Println(err)
       }
   }()
   // 获取工作表中指定单元格的值
   cell, err := f.GetCellValue("Sheet1", "B2")
   if err != nil {
       fmt.Println(err)
       return
   }
   fmt.Println(cell)
   // 获取 Sheet1 上所有单元格
   rows, err := f.GetRows("Sheet1")
   if err != nil {
       fmt.Println(err)
       return
   }
   for _, row := range rows {
       for _, colCell := range row {
           fmt.Print(colCell, "\t")
       }
       fmt.Println()
   }
}

小结

在本文中,简单介绍了 Go通过 Excelize操作Excel 的导入、导出的使用方式,Excelize 是 Go 语言编写的用于操作 Office Excel 文档基础库,可以使用它来读取、写入Excel文档,还支持向Excel中插入图片、图标、以及工具函数等,功能相对比较齐全,对于基本的需求完全够用。

网上有一个详细介绍excelize使用的中文文档,总结挺全面的,地址:xuri.me/excelize/zh…

来源:https://juejin.cn/post/7150436282575880200

标签:go语言,excel,excelize
0
投稿

猜你喜欢

  • 图文详解Mysql使用left join写查询语句执行很慢问题的解决

    2024-01-13 17:14:52
  • python中networkx函数的具体使用

    2023-01-05 12:29:16
  • 如何利用python给图片添加半透明水印

    2022-08-16 09:34:28
  • 从其他电脑访问本机的Mysql的设置方法

    2024-01-17 10:25:57
  • Python爬虫之网页图片抓取的方法

    2021-12-19 00:47:20
  • Python BeautifulSoup中文乱码问题的2种解决方法

    2023-05-09 13:42:17
  • MySQL身份认证漏洞 升级到5.5.24可修正

    2012-07-11 15:54:09
  • Python简单日志处理类分享

    2023-02-22 01:10:26
  • 详解Python yaml模块

    2022-08-14 12:15:18
  • Docker-Compose创建mysql容器详解

    2024-01-17 06:10:19
  • Golang+Vue轻松构建Web应用的方法步骤

    2024-05-29 22:06:42
  • vue实现卡片翻转轮播展示

    2024-04-27 16:08:16
  • JavaScript使用ZeroClipboard操作剪切板

    2024-04-29 13:38:14
  • 先学会为自己做设计

    2008-06-01 16:32:00
  • python生成指定尺寸缩略图的示例

    2022-04-14 01:14:49
  • Python爬虫之Selenium实现关闭浏览器

    2022-12-09 07:11:03
  • Python实现简单猜数字游戏

    2021-03-22 14:31:50
  • OpenCV3.0+Python3.6实现特定颜色的物体追踪

    2021-05-13 09:01:03
  • 利用Python实现K-Means聚类的方法实例(案例:用户分类)

    2023-05-15 13:14:34
  • Go日志框架zap增强及源码解读

    2024-05-22 10:19:13
  • asp之家 网络编程 m.aspxhome.com