2 回答
TA贡献1821条经验 获得超4个赞
经过几次尝试,我找到了在 golang 中有效的解决方案,感谢@Steffen Ullrich 提供的链接。类似于在 VB 中的工作,而不是两边的两个引号,一个应该足够了:
row = append(row, "=\""+e. userCode +"\"")
将包含 CSV 文件中的所有前导零:
000001, 010101, 000000
TA贡献1869条经验 获得超4个赞
我测试了你的代码,结果在 excel 中会丢失零,但在 txt 阅读器中不会;
代码:
func main() { type user struct { Name string Code string }
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
var buf bytes.Buffer
writer := csv.NewWriter(&buf)
var cols = []string{"Name", "Code"}
writer.Write(cols)
users := []user{{Name: "Tome", Code: "001"}, {Name: "James", Code: "000"}}
for _, e := range users {
err := writer.Write([]string{e.Name, e.Code})
if err != nil {
log.Fatalln(err)
}
}
writer.Flush()
w.Header().Set("Content-Type", "text/csv")
w.Header().Set("Content-Disposition", "attachment;filename="+"test.csv")
w.Write(buf.Bytes())
})
http.ListenAndServe(":8080", nil)
}
结果:
- 2 回答
- 0 关注
- 195 浏览
添加回答
举报