package main
import (
"fmt"
"github.com/360EntSecGroup-Skylar/excelize"
"strconv"
)
//excel个列的简称
//
var CellCols = []string{"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"}
//生成excel文件
func WriteExcel(filename string, cols []string, data [][]string) {
xlsx := excelize.NewFile()
//去标题,并且设置
for idx, colName := range cols {
xlsx.SetCellValue("Sheet1", fmt.Sprintf("%s%d", CellCols[idx], 1), colName)
}
//取数据内容,并且设置
for rowIdx, row := range data {
for colIdx, s := range row {
xlsx.SetCellValue("Sheet1", fmt.Sprintf("%s%d", CellCols[colIdx], rowIdx+2), s) //写数据从第二行开始
}
}
xlsx.SaveAs(filename)
}
func main() {
data := [][]string{}
for i := 1; i <= 5000; i++ {
data = append(data, []string{"国标ID" + strconv.Itoa(i), "设备名称" + strconv.Itoa(i), "备注" + strconv.Itoa(i)})
WriteExcel("测试excel.xlsx", []string{"国标ID", "设备名称", "备注"}, data)
}
fmt.Println("数据写入完成!!!")
}
这个函数直接给列的切片,以及给二纬度数据就是可以调用存储数据了。