使用notepad++/excle快速将cvs文件转换为insert语句技巧以及注意点

Posted liweiweicode

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用notepad++/excle快速将cvs文件转换为insert语句技巧以及注意点相关的知识,希望对你有一定的参考价值。

使用notepad++/excle快速将cvs文件转换为insert语句技巧以及注意点

业务场景

最近nc项目经理从第三方弄来了一个300w行的csv文件,让导入数据库做处理,出现了下列问题:

csv文件中的字段分隔符,默认使用,进行分隔的,insert的字段个数必须和插入字段的个数对应上,错误的原因就是:存储的问题子当中,有用,分隔的内容,导入的时候导致多一个字段,每次导入一部分就出错

注意事项/问题:

  • 文件过大,excle/notepad++均无法打开,使用linux工具对文件进行按行拆分

    #将文件上传到linux中,使用下面命令,total.csv为需要拆分的文件,company为拆分后的文件名
    split -l 100000 total.csv company

技术图片

  • 文件格式无法不能用excle编辑,编辑后,出现格式乱码,可使用notepad++编辑保存;
  • 拆分后的文件也不宜过大,否则进行字符替换的时候,编辑器会卡死;
  • 由于使用转为insert语句导入的原因,空字符串在导入的过程中容易出错,所以讲空用""代替;

一、使用notepad++转换sql语句

1.使用正则表达是将最后一个行最后的字符替换为");

技术图片

? "$"找到最后一个字符;

? 将最后一个字符替换为");",及sql语句的结束语句;

?技术图片

前两步效果:

技术图片

? 将,替换为",",因为csv文件中如果为空值,会直接用,隔开,不会区分字段的分割,

? 将开头换为"(,记得要使用转义字符,不然无法替换

技术图片

? 再将开头换为insert语句

技术图片

? 最后结果:

技术图片

二、使用excle替换

这次不用在意文件的格式,因为最后是保存sql语句

技术图片

下面是公式

=CONCATENATE("INSERT INTO `new1_copy`(`DWMC`, `DWDZ`, `ZZJGDM`, `DWDH`, `DWDJ`, `DWXZ`, `XZQY`, `AQZRR`, `DWLX`, `AQZRRSFZ`, `AQZRRDH`, `JZMJ`, `DWZSX`, `GIS_X`, `GIS_Y`, `Deleted`) VALUES ('",A1,"','",B1,"','",C1,"','",D1,"','",E1,"','",F1,"','",G1,"','",H1,"','",I1,"','",J1,"','",K1,"','",L1,"','",M1,"','",N1,"','",O1,"','",P1,"');")

如果数据量很大,下拉很慢,双击公式单元格左下角:

技术图片

会自动往下生成

以上是关于使用notepad++/excle快速将cvs文件转换为insert语句技巧以及注意点的主要内容,如果未能解决你的问题,请参考以下文章

mongodb将mysql数据导入

如何去除项目里面的SVN和CVS文件夹

如何通过python快速输出数据库数据到excel

notepad++ 插件推荐——快速定位文件

Excle科学计数法快速还原

excl数据怎么导入到MongoDB中,或者怎样将excl处理在导入到数据库中,数据量有4万条