Go--生成excel表格,读取excel表格数据
先下载第三方依赖包:
go get -u github.com/xuri/excelize/v2
代码:
package main import ( "fmt" "github.com/xuri/excelize/v2" ) //生成excel表格 func touchExcel() { //开启新的文件 f := excelize.NewFile() //创建一个工作表 index, err := f.NewSheet("工作表名") if err != nil { fmt.Println("创建工作表失败:", err) } //设置默认的工作表 f.SetActiveSheet(index) //给单元格赋值 f.SetCellValue("工作表名", "A2", "hello") f.SetCellValue("工作表名", "B2", "100") //创建一个工作表 f.NewSheet("Sheet1") f.SetCellValue("Sheet1", "B2", "100") //保存路径 if err := f.SaveAs("test-excel/test2.xlsx"); err != nil { fmt.Println("保存文件失败:", err) } } //打开excel,读取数据 func readExcel() { f, err := excelize.OpenFile("test-excel/test2.xlsx") if err != nil { fmt.Println("打开excel文件失败") } //打开文件后要关闭 defer f.Close() //获取指定单元格的值 cell, err := f.GetCellValue("Sheet1", "B2") if err != nil { fmt.Println("获取数据失败:", err) return } fmt.Printf(cell) //获取 工作表名 上所有单元格的值 rows, err := f.GetRows("工作表名") if err != nil { fmt.Println("获取单元格失败:", err) return } //遍历数组 for i, row := range rows { if i == 0 { //表格第一行常为表头,单独拎出来 fmt.Println(row) //输出格式:[xxx xxx xxx] }else { fmt.Println(row[0],row[1]) //可用row[num]来获取单元格里的数据,方便后续使用 } } //遍历数组,for循环 for i := 0; i < len(rows); i++ { fmt.Println(rows[i]) //输出格式:[xxx xxx xxx] } } func main() { //touchExcel() readExcel() }