记一次给一个60万条数据的EXCEL,把EXCEL里的数据导入到mysql的表中

  由于是新系统切换,老系统有历史数据,需要进行割接,然后业务方给了一个60万数据的excel,领导让我导入到现网数据库中去。我当时的想法是,通过java的poi工具类解析excel,然后生成insert into的sql放到现网的sql工具类上去执行。花费了两个多小时,工具类写好了,代码测试完毕,准备切换到60万数据时候,发现解析不出来了,头大。后面在百度上找到可以通过excel的公式功能快速拼接insert into语句。最后不到半小时就解决了这个60万数据导入的问题。我记录下解决的过程:

1、业务方给的excel需要重新复制到一个新的EXCEL中,我不知道为啥,输入的计算公式就是不生效

2、编写自己想要生成的insert into sql:

="INSERT INTO t_user_gray_his (JOIN_TIME,ACCOUNT,PHONE,`ADD_CREATE_STAFFID`, `DEL_CREATE_STAFFID`, `USER_TYPE`) VALUES(STR_TO_DATE('"&A2&"','%d/%m/%Y %H:%i:%s') ,'"&B2&"' ,'"&C2&"','admin','admin','0');"

其中,&A2&表示JOIN_TIME所在单元格位置,&B2&表示ACCOUNT所在单元格位置,以此类推。。。

生成的sql语句如下:

INSERT INTO t_user_gray_his (JOIN_TIME,ACCOUNT,PHONE,`ADD_CREATE_STAFFID`, `DEL_CREATE_STAFFID`, `USER_TYPE`) VALUES(STR_TO_DATE('1/4/2019 00:00:00','%d/%m/%Y %H:%i:%s') ,'Z8B42DB46E4D' ,'13400000000','admin','admin','0');

3、可以通过拖住鼠标右键下拉,来自动填充,我60万数据,这样肯定是不行的,后面发现,可以先复制,然后shift+第一行+最后一行,然后粘贴,公式全部自动填充

4、把生成sql语句拷贝出来,生成一个.sql文件,excel中可能直接拷贝不出,需要先拷贝,然后另起一列,粘贴为值,然后才可以拷贝出来

  如果只导入一列的话,可以通过notepad工具的alt+c列编辑功能,但是灵活性较差,先把一列数据复制到notepad中,然后alt+c启用列编辑,简单来说,就是复制你输入的字符,没行都一样。

知人者智,自知者明,胜人者有力,自胜者强。
原文地址:https://www.cnblogs.com/nanfengxiangbei/p/15010139.html