【笔记】Go语言操作Excel

前言

Excelize is a library written in pure Go providing a set of functions that allow you to write to and read from XLAM / XLSM / XLSX / XLTM / XLTX files.(Github

下载依赖

1
go get github.com/xuri/excelize/v2

对Excel文件的操作

新建Excel文件

1
file := excelize.NewFile()

保存Excel文件

Book1.xlsx:文件名

1
err := file.SaveAs("Book1.xlsx");

打开已存在的Excel文件

1
2
file, err := excelize.OpenFile("1.xlsx")
defer file.Close()

从HTTP请求中打开Excel文件流

req*http.RequestHTTP请求
key:请求的键

1
2
3
httpFile, _, err := req.FormFile("key")
defer httpFile.Close()
file, err := excelize.OpenReader(httpFile)

HTTP响应设置为Excel文件流

responseWriterhttp.ResponseWriterHTTP响应
Book1.xlsx:文件名

1
2
3
responseWriter.Header().Set("Content-Disposition", "attachment; filename=Book1.xlsx")
responseWriter.Header().Set("Content-Type", req.Header.Get("Content-Type"))
_, err := file.WriteTo(responseWriter)

对工作簿的操作

新建工作簿

1
index, err := file.NewSheet("Sheet2")

设置Excel文件的默认工作簿

1
file.SetActiveSheet(index)

对单元格的操作

获取表格内容

1
value, err := file.GetCellValue("Sheet1", "A1")

遍历所有单元格的内容

1
2
3
4
5
6
7
rows, err := file.GetRows("Sheet1")
for _, row := range rows {
for _, col := range row {
fmt.Print(col, "\t")
}
fmt.Println()
}

获取所有已经合并的表格列表

1
cellList, err := file.GetMergeCells("Sheet1")

获取指定行的行高

1
height, err := file.GetRowHeight("Sheet1", 1)

获取指定列的列宽

1
width, err := file.GetColWidth("Sheet1", "A")

完成

参考文献

CSDN——Generalzy