先下载第三方依赖包:
go get -u /xuri/excelize/v2
代码:
package main
import (
"fmt"
"/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()
}
















