godoc
github 官网
官方文档
Excelize 的目标是创建并维护一个 Go 语言版本的 Excel 文档 API,以处理符合基于 Office Open XML(OOXML)标准的电子表格文档,借助 Excelize 您可以使用 Go 读取和写入 MS Excel 文件
快速开始
创建 Excel 文档
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
// 创建一个excel对象
f := excelize.NewFile()
defer func() {
if err := f.Close(); err != nil {
fmt.Println(err)
}
}()
// 创建一个工作表
index, err := f.NewSheet("Sheet2")
// 设置单元格的值
f.SetCellValue("Sheet2", "A2", "Hello world.")
// 设置工作簿的默认工作表
f.SetActiveSheet(index)
// 根据指定路径保存文件
if err := f.SaveAs("Book1.xlsx"); err != nil {
fmt.Println(err)
}
|
读取 Excel 文档
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
// 打开文件并获取excel对象
f, err := excelize.OpenFile("Book1.xlsx")
defer func() {
if err := f.Close(); err != nil {
fmt.Println(err)
}
}()
// 获取工作表中指定单元格的值
cell, err := f.GetCellValue("Sheet1", "B2")
// 获取 Sheet1 上所有单元格
rows, err := f.GetRows("Sheet1")
for _, row := range rows {
for _, colCell := range row {
fmt.Print(colCell, "\t")
}
fmt.Println()
}
|
在 Excel 文档中创建图表
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
err := f.AddChart("Sheet1", "E1", &excelize.Chart{
Type: excelize.Col3DClustered,
Series: []excelize.ChartSeries{
{
Name: "Sheet1!$A$2",
Categories: "Sheet1!$B$1:$D$1",
Values: "Sheet1!$B$2:$D$2",
},
{
Name: "Sheet1!$A$3",
Categories: "Sheet1!$B$1:$D$1",
Values: "Sheet1!$B$3:$D$3",
},
{
Name: "Sheet1!$A$4",
Categories: "Sheet1!$B$1:$D$1",
Values: "Sheet1!$B$4:$D$4",
}},
Title: excelize.ChartTitle{
Name: "Fruit 3D Clustered Column Chart",
},
})
|
向 Excel 文档中插入图片
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
import (
_ "image/gif"
_ "image/jpeg"
_ "image/png"
)
//插入图片
err := f.AddPicture("Sheet1", "A2", "image.png", nil)
// 在工作表中插入图片,并设置图片的缩放比例
err := f.AddPicture("Sheet1", "D2", "image.jpg",
&excelize.GraphicOptions{ScaleX: 0.5, ScaleY: 0.5})
// 在工作表中插入图片,并设置图片的打印属性
enable, disable := true, false
err := f.AddPicture("Sheet1", "H2", "image.gif",
&excelize.GraphicOptions{
PrintObject: &enable,
LockAspectRatio: false,
OffsetX: 15,
OffsetY: 10,
Locked: &disable,
})
|