2、新建Excel文档,选择数据=>自文本。
3、选择需要导入的csv文件。
4、设置csv文件编码,务必按图中高亮部分设置简体中文GB18030编码
以及选择分隔符号。
注意查看文件预览中识别的字符是否正常。
5、设置csv数据分割方式,务必选择分隔符为逗号,文本识别符号为无。
6、设置各字段的数据类型,按CTRL或者SHIFT键和鼠标左键可同时选择多个列,如果有些超长数字(例如身份证号码)Excel识别错误的,必须选择文本类型。
7、完成导入,确认无误。
根据需求做一个csv报表数据导入入库功能,运行多天突然运维告知导入数据有问题,有问题那就排查呗。。。
题外话:这个问题足足浪费了我2天时间,期间还出了其他的一些问题着实让我抓狂,另外这篇文章希望能帮到你,不要在采坑了!!!
说在前面,这个csv表格数据是有中文的。ok继续
通过日志打点发现了以下错误
找了一圈,着实头痛,我也知道中文需要做处理转化这个我已经做了,并且已经明确是utf-8了通过标准库方法进行判断的还是报错。着实让我摸不着头脑。判断utf-8方法如下
ok,最后借助了百度,google找了一大圈功夫不负有心人,最后发现utf-8还有 utf-8 bom 这种编码格式,我想骂娘。。。至于编码规则啥的就不详细说了,有兴趣自行百度吧。
解决方案如下:
至于其他编码方式以及转换可以查看golang官方扩展库 golang.org/x/text/encoding 库中的源码。
https://stackoverflow.com/questions/31326659/golang-csv-error-bare-in-non-quoted-field
https://github.com/golang/go/issues/21672
https://zasy.github.io/2018/09/28/tx-06/
一个用golang的无名小卒
完~