我仍然是golang的菜鸟,但我会尝试解释我想创造什么。我有这个:我想将同一个表转换为csv文件,例如这是我的代码:func maakCSVBestand() { rapportage := haalRapportage() opdrachten := rapportage.Opdrachten csvFile, err := os.Create("Rapportage Urenverantwoording.csv") if err != nil { fmt.Println(err) } defer csvFile.Close() writer := csv.NewWriter(csvFile) writer.Comma = ';' writer.Write([]string{"Datum", "Naam", "Aantal uren gewerkt", "Aantal deuren gemaakt", "Informatie"}) for i := 0; i < len(opdrachten); i++ { var row []string persoon := opdrachten[i].Persoon row = append(row, opdrachten[i].Datum.String()) for j := 0; j < len(persoon); j++ { row = append(row, persoon[j].Naam+" "+persoon[j].Achternaam) row = append(row, strconv.FormatFloat(persoon[j].UrenGewerkt, 'g', 2, 64)) row = append(row, strconv.Itoa(persoon[j].AantalDeurenGemaakt)) row = append(row, persoon[j].Informatie) } writer.Write(row) } writer.Flush()}但这会产生我做错了什么?
1 回答
叮当猫咪
TA贡献1776条经验 获得超12个赞
为内部循环的每次迭代写入一行。清除第一次迭代后的第一列:
for i := 0; i < len(opdrachten); i++ {
var row []string
persoon := opdrachten[i].Persoon
row = append(row, opdrachten[i].Datum.String())
for j := 0; j < len(persoon); j++ {
row = append(row, persoon[j].Naam+" "+persoon[j].Achternaam)
row = append(row, strconv.FormatFloat(persoon[j].UrenGewerkt, 'g', 2, 64))
row = append(row, strconv.Itoa(persoon[j].AantalDeurenGemaakt))
row = append(row, persoon[j].Informatie)
writer.Write(row)
row[0] = "" // clear Datum field
row = row[1:] // collect new values after blank datum
}
}
- 1 回答
- 0 关注
- 120 浏览
添加回答
举报
0/150
提交
取消