我尝试在golang beego框架中将一些数据输出到csv文件,以下是我的代码
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
来写入所有记录,而不是再次进行循环。 - Dave C