思路大概为:
将excel文件中的数据转换成sql文件;
把sql在MySQL中执行;
(1)如图所示,我们在excel中执行如下语句
=CONCATENATE("insert into table_name (id,parent_id,NAME,pinyin,STATUS,LEVEL,seq,create_by,create_date,update_by,update_date) values(",A2,",",B2,",'",C2,"','",D2,"',1,",E2,",",F2,",'system',NOW(),'system',NOW());")
其中table_name表示你要插入的表,id,parent_id等为数字类型,name,pinyin为字符串类型,拼接的方法有点差别。
(2)鼠标点住C1单元格的右下角一直拖拽下去,为所有要执行sql语句的行插入上述公式。
(3)复制C列的内容到sql文件中,如下图
(4)将sql文件导入到mysql中执行,我们可以采用两种方式。
1)采用命令行的方式
进入mysql控制台后,使用命令source example.sql,或者直接执行
mysql -u用户名 -p密码 -D数据库<example.sql
2)如果安装了mysql客户端,可以新建Scrip文件,导入sql文件执行,如图:
首先将excel的数据复制到文本文件file_input中,然后执行如下脚本即可。
#!/usr/bin/perl use strict; use warnings; my $file = "input_file"; open FILE_INPUT $file; open FILE_OUTPUT ">output_file"; while(<FILE_INPUT>) { chomp; #因为我的文件中(如上图)只有两列,所以我只采用两个参数保存切割结果, #采用多个空格(\s+)作为切割标准 my($input1,$input2) = split(/\s+/, $_); print FILE_OUTPUT "insert into table_name \(col1,col2\) values\(\"$input1\",\"$input2\"\)"; } close FILE_INPUT; close FILE_OUTPUT;
CONCATENATE是一个文本连接函数
语法:CONCATENATE(text1,text2,text3......)
其中text表示一个个要连接起来的文本。