go语言csv包_golang导出csv

项目中涉及到导出到csv的功能,在网上找了一圈,有个UTF82GBK的方式,这个后来发现有bug,涉及到复杂中文,显示出来的有问题,而且导出来的csv不是utf-8格式,不能用文本编辑器打开.最终确定一个方案,也比较简单,既解决了csv用excel打开,中文乱码问题,也能用编辑器打开,还能默认显示带逗号的字符串.废话不多说,直接上代码.

package main

import (

"encoding/csv"

"log"

"os"

)

func main() {

filename := "/Users/icsoc/Downloads/test.csv"

columns := [][]string{{"姓名", "电话", "公司", "职位", "加入时间"}, {"1", "2", "刘犇,刘犇,刘犇", "4", "5"}}

ExportCsv(filename,columns)

}

func ExportCsv(filePath string, data [][]string) {

fp, err := os.Create(filePath) // 创建文件句柄

if err != nil {

log.Fatalf("创建文件["+filePath+"]句柄失败,%v", err)

return

}

defer fp.Close()

fp.WriteString("\xEF\xBB\xBF") // 写入UTF-8 BOM

w := csv.NewWriter(fp) //创建一个新的写入文件流

w.WriteAll(data)

w.Flush()

}

打开导出的csv,会自动给带逗号的字符加""

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值