Я попытался вывести некоторые данные в файл csv в рамках golang beego, вот мой код
records := make([][]string,len(devicesData))
for k,v := range devicesData{
records[k] = []string{v.Fields.Country,v.Fields.Imei[0],v.Fields.Number[0]}
}
writer := csv.NewWriter(this.Controller.Ctx.ResponseWriter)
for _, record := range records {
err := writer.Write(record)
if err != nil {
fmt.Println("Error:", err)
return
}
}
this.Ctx.Output.Header("Content-Type", "application/csv")
this.Ctx.Output.Header("Content-Disposition", "attachment; filename=MyVerySpecial.csv")
writer.Flush()
Однако он показывает только данные записи в браузере, он не может загрузить файл. У меня есть некоторый контроллер регистрации и функция фильтрации перед этим контроллером файла загрузки, я не знаю, влияет ли это. Что не так с моим кодом? Спасибо
Write([]string{…})
для каждой записи, а не сохранять ее в[][]string
. Однако, если вы хотите сначала обработать их все и сохранить в[][]string
, вы можете использоватьWriteAll
чтобы записать все записи вместо того, чтобы снова зацикливаться самостоятельно. - person Dave C   schedule 24.06.2015