最近要用phpexcelreader将excel文件读入到mysql中,搞了好几天,终于小有所成,拿出来与大家分享,若有不妥,还请高手多多指教。
首先创建一个库及表
/*******************************
create_db.php
**********************************/
$connect = mysql_connect("localhost","root","123456");
if (!$connect)
echo "连接数据库失败!!";
else {
$drop = mysql_query("drop database pp_enterp",$connect);
$create = mysql_query("create database pp_enterp",$connect);//创建数据库
if (!$create)
echo "创建数据库失败!!";
else {
mysql_select_db("pp_enterp");
//创建表
$query = "CREATE TABLE shd_pp_enterp ( ";
$query.="id int(5) auto_increment not null primary key ,";
$query.="number char(6) not null,";
$query.="zip_code char(12) not null,";
$query.="province char(6) ,";
$query.="city char(8) ,";
$query.="address char(100) ,";
$query.="enp_name char(100) , ";
$query.="contact char(6) , ";
$query.="phone_1 char(15) , ";
$query.="phone_2 char(15) , ";
$query.="phone_3 char(15) , ";
$query.="phone_4 char(15) , ";
$query.="lic_num char(15) ) default charset='gbk' ";
//echo $query."
";
$result = mysql_query($query,$connect);
if (!$result)
echo "创建表失败!!";
else {
echo null;
}
}
}
?>
然后,应用phpexcelreader将excel文件中的数据度入到mysql中,程序如下(参考了很多模板):
require_once'./create_db.php';
require_once './reader.php';
// ExcelFile($filename, $encoding);
$data = new Spreadsheet_Excel_Reader();
// Set output Encoding.
$data->setOutputEncoding('GBK');
//”data.xls”是指要导入到mysql中的excel文件
$data->read('example.xls');
@ $db = mysql_connect('localhost', 'root', '123456') or
die("Could not connect to database.");//连接数据库
mysql_query("set names 'GBK'");//输出中文
mysql_select_db('pp_enterp'); //选择数据库
error_reporting(E_ALL ^ E_NOTICE);
for ($i = 2; $i <= $data->sheets[0]['numRows']; $i++) {
//以下注释的for循环打印excel表数据
/************************************************************
for ($j = 1; $j <= $data->sheets[0]['numCols']; $j++) {
echo "\"".$data->sheets[0]['cells'][$i][$j]."\",";
}
echo "\n";
***************************************************************/
//以下代码是将excel表数据【3个字段】插入到mysql中,根据你的excel表字段的多少,改写以下代码吧!
$sql = "INSERT INTO shd_pp_enterp (number,zip_code,province,city,address,enp_name,contact,phone_1,phone_2,phone_3,phone_4,lic_num) 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]."','".
$data->sheets[0]['cells'][$i][7]."','".
$data->sheets[0]['cells'][$i][8]."','".
$data->sheets[0]['cells'][$i][9]."','".
$data->sheets[0]['cells'][$i][10]."','".
$data->sheets[0]['cells'][$i][11]."','".
$data->sheets[0]['cells'][$i][12]."')";
echo $sql.'
';
$res = mysql_query($sql,$connect);
if (!$res)
echo ""."第".$i."行插入数据失败!!".""."
";
else {
echo ""."第".$i."行插入数据成功!!".""."
";
}
}
?>