1、excelize库安装(使用go modules)
go get github.com/xuri/excelize/v2
2、读excel文件
file1, err := excelize.OpenFile("./example.xlsx")
if err != nil {
fmt.Println(err)
return
}
rows, err := file1.GetRows("Sheet1")
data := [][]interface{}{}
data = append(data, []interface{}{"手机号", "投放数量", "id"})
for i := 1; i < len(rows); i++ {
if len(rows[i]) >= 3 {
count, _ := strconv.Atoi(rows[i][1])
phone := rows[i][0]
id := rows[i][2]
for j := 0; j < count; j++ {
data = append(data, []interface{}{phone, count, id})
}
}
}
3、写excel文件
f := excelize.NewFile()
for i := 0; i < len(data); i++ {
startCell, err := excelize.JoinCellName("A", i+1)
if err != nil {
fmt.Println("1", err)
return
}
if err := f.SetSheetRow("Sheet1", startCell, &data[i]); err != nil {
fmt.Println("2", err)
return
}
}
f.SaveAs("./example1.xlsx")
注:f.SetSheetRow("Sheet1", startCell, &data[i]),将sheet的行与一行数据关联起来直接插入即可,不需要调用f.SetCellValue()一个格子一个格子的插入数据,比较麻烦