第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

在 Golang 中導(dǎo)出為 CSV 時(shí)保留字符串的前導(dǎo)零

在 Golang 中導(dǎo)出為 CSV 時(shí)保留字符串的前導(dǎo)零

Go
烙印99 2022-12-19 10:59:02
我有一個(gè)使用 Gin 框架的 Go 應(yīng)用程序,它將結(jié)構(gòu)導(dǎo)出到 CSV。一列userCode要求導(dǎo)出的字段保留字符串的所有前導(dǎo)零。例如,對(duì)于 , , 等字符串000001,010101CSV000000中導(dǎo)出的字段應(yīng)該具有完全相似的值。但是,如果我直接將字符串附加到行并寫(xiě)入緩沖區(qū),導(dǎo)出的字段將發(fā)出所有前導(dǎo)零并且值變?yōu)椋?,,,我做了一些挖掘10101, 看來(lái)這個(gè)問(wèn)題可以通過(guò)設(shè)置列類(lèi)型來(lái)解決在讀取 csv 文件時(shí)在 Excel 中,但我想知道這是否可以在 Go 程序中解決?謝謝!我的CSV導(dǎo)出相關(guān)功能:func (h *HandleManager) ExportUsers() gin.HandlerFunc {        var buf bytes.Buffer        writer := csv.NewWriter(&buf)        var cols = []string{"User Name", ..., ....}        writer.Write(cols)        for _, e := range users {            var row []string            // ....            row = append(row, e.userCode) // type: string            if err := writer.Write(row); err != nil {                log.Errorff(h.logCtx, "ExportUsers|WriteToCSV|err:%v", err)                c.AbortWithStatus(http.StatusInternalServerError)                return            }        }        writer.Flush()        c.Writer.Header().Set("Content-Type", "text/csv")        c.Writer.Header().Set("Content-Disposition", "attachment;filename="+csvFileName+".csv")        c.Writer.Write(buf.Bytes())}
查看完整描述

2 回答

?
收到一只叮咚

TA貢獻(xiàn)1821條經(jīng)驗(yàn) 獲得超5個(gè)贊

經(jīng)過(guò)幾次嘗試,我找到了在 golang 中有效的解決方案,感謝@Steffen Ullrich 提供的鏈接。類(lèi)似于在 VB 中的工作,而不是兩邊的兩個(gè)引號(hào),一個(gè)應(yīng)該足夠了:

row = append(row, "=\""+e. userCode +"\"")

將包含 CSV 文件中的所有前導(dǎo)零:

000001, 010101, 000000


查看完整回答
反對(duì) 回復(fù) 2022-12-19
?
MMTTMM

TA貢獻(xiàn)1869條經(jīng)驗(yàn) 獲得超4個(gè)贊

我測(cè)試了你的代碼,結(jié)果在 excel 中會(huì)丟失零,但在 txt 閱讀器中不會(huì);


代碼:


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)

}

結(jié)果:http://img1.sycdn.imooc.com//639fd39d0001e1f702560180.jpg

查看完整回答
反對(duì) 回復(fù) 2022-12-19
  • 2 回答
  • 0 關(guān)注
  • 269 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)