go excelize读写excel

429 阅读1分钟

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()一个格子一个格子的插入数据,比较麻烦