用phpexcelreader将excel文件读入到mysql中(转载)

 

最近要用phpexcelreader将excel文件读入到mysql中,搞了好几天,终于小有所成,拿出来与大家分享,若有不妥,还请高手多多指教。

首先创建一个库及表

<?php

/*******************************

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."<br>";
   
    $result = mysql_query($query,$connect);
   
    if (!$result)
        echo "创建表失败!!";
    else {
        echo null;
    }
   }
}
?>

然后,应用phpexcelreader将excel文件中的数据度入到mysql中,程序如下(参考了很多模板):

<?php
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.'<br />';

       $res = mysql_query($sql,$connect);
   
    if (!$res)
        echo "<font color= red >"."第".$i."行插入数据失败!!"."</font>"."<br>";
   else {
      echo "<font color=blue>"."第".$i."行插入数据成功!!"."</font >"."<br/>";
   }

}

?>

posted @ 2011-09-14 23:58  fengzhixin  阅读(398)  评论(0编辑  收藏  举报