在开发中一些需求需要通过程序操作excel文档,例如导出excel、导入excel、向excel文档中插入图片、表格和图表等信息,使用Excelize就可以方便的满足上述需求,本文主要总结一下Excelize的使用,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教。
Excelize简介
Excelize是Go语言编写的一个用来操作Office Excel文档类库,可以使用它来读取、写入Excel文件,还支持向Excel中插入图片、图标、以及工具函数等,功能相对比较齐全,对于基本的需求完全够用,废话不多说,直接开干。
安装
1
2
3
|
go get github.com/xuri/excelize
# 如果你是通过Go Module管理的包,执行以下安装
go get github.com/xuri/excelize/v2
|
导出 Excel 文档
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
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文档
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
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中插入图片、图标、以及工具函数等,功能相对比较齐全,对于基本的需求完全够用。
|