一、假如excel中有四列数据,希望导入到数据库中 mytable 中,对应的字段分别为field1,field2,field3,field4.
二、在excel表格中增加一列(?excel应该是E列),利用excel的公式自动生成SQL语句(这个很重要,别写错了),具体方法 如下?:
1、增加一列(excel应该是E列,因为我们原有4列数据,分别为A\B\C\D列)
2、在第一行(这一行必须为有效数据行否则出错)的E列,就是E1中输入公式=CONCATENATE("insert into table (field1,field2,field3,field4) values ('",A1,"','",B1,"','",C1,"','",D1,"');")
3、此时E1已经生成如下的SQL语句: insert into mytable (field1,field2,field3、field4) values ('A1中 的数据','B1','C1','D1');
4、将E1的公式复制到所有行的E列,(就是用鼠标点住E1单元格的右下角,一直拖拽下去,到最后一行数据)
5、此时E列已经生成了所有的SQL语句
6、选中E列把E列数据复制到一个纯文本文件中,命名为 例如:excel.txt
三、把excel.txt 放到数据库中运行即可,可通过命令行导入
source f:\excel.txt
1.将选中的数据快儿拷贝到一个TXT文本文件中(记得把后面的空格消掉。。否则导入数据库后会有对应的空行),假如存到“D:\data.txt”这个位置里。
2.根据要导入的数据快儿建立MySql数据库和表,然后进入命令提示符里使用命令
load data local infile 'D:/data.txt' into table exceltomysql fields terminated by '\t';
ExcelToMysql.php
require_once 'reader.php';
$data = new Spreadsheet_Excel_Reader();
$data->setOutputEncoding('gbk');
$data->read('classify.xls'); //”classify.xls”是指要导入到mysql中的excel文件
@ $db = mysql_connect("localhost", "root", "") or
die("Could not connect to database.");//连接数据库
mysql_query("set names 'gbk'");//输出中文
mysql_select_db('japlearn'); //选择数据库
error_reporting(E_ALL ^ E_NOTICE);
for ($i = 1; $i <= $data->sheets[0]['numRows']; $i++) {
//以下注释的for循环打印excel表数据
//以下代码是将excel表数据【6个字段】插入到mysql中,根据你的excel表字段的多少,改写以下代码吧!
$sql = "INSERT INTO classify VALUES('".
$data->sheets[0]['cells'][$i][1]."','".
$data->sheets[0]['cells'][$i][2]."','".
$data->sheets[0]['cells'][$i][3]."','".
$data->sheets[0]['cells'][$i][4]."','".$data->sheets[0]['cells'][$i][5]."','".$data->sheets[0]['cells'][$i][6]."')";
echo $sql.'
';
$res = mysql_query($sql);
}
?>
文中红色标注为需要注意的地方,请替换成你配置好的数据,如数据库配置等。运行http://localost/ExcelToMysql.php实现导入。
使用工具,比如navicat