好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

PHP Excel类读取excel文件并且导入数据库 - php高级应

PHP Excel类读取excel文件并且导入数据库

在一般情况下如果我们要把excel数据库中的数据导入到mysql数据库我们没什么好办法实现了,但有了PHP Excel失控这后一切都变得简单了.

本代码是在thinkphp中开始使用的.

1.引入类,代码如下:

Vendor( 'PHPExcel.PHPExcel' ); //引入扩展类.就是/           Vendor( 'PHPExcel.PHPExcel.IOFactory' );          Vendor( 'PHPExcel.PHPExcel.Reader.Excel5' );     $excel_file = ROOT_PATH. "/public/Uploads/" . $publicity_bankdata_mod ->where( "id=" . $data [ 'id' ])->getField( 'excel_file' );           //dump($excel_file);exit;   $objReader  = PHPExcel_IOFactory::createReader( 'Excel5' ); //use excel2007 for 2007 format   $objPHPExcel  =  $objReader ->load( $excel_file ); //$uploadfile   $sheet  =  $objPHPExcel ->getSheet(0);  $highestRow  =  $sheet ->getHighestRow();  // 取得总行数   $highestColumn  =  $sheet ->getHighestColumn();  // 取得总列数   $arr_result  =  array ();  $strs = array ();  $strs_datas = array ();  $succ_result =0;  $error_result =0; 

上面看上去有点乱,下面我来写一个完整的类,代码如下:

<?php  set_time_limit(20000);  ini_set ( 'memory_limit' , '-1' );  require_once   './PHPExcel.php' ;  require_once   './PHPExcel/IOFactory.php' ;  require_once   './PHPExcel/Reader/Excel5.php' ;    //使用pdo连接数据库   $dsn  =  "mysql:host=localhost;dbname=alumni;" ;  $user  =  "root" ;  $password  =  "" ;  try{    $dbh  =  new  PDO( $dsn , $user , $password );    $dbh ->query( 'set names utf8;' );   }catch(PDOException  $e ){    echo   "连接失败" . $e ->getMessage();  }  //pdo绑定参数操作   $stmt  =  $dbh ->prepare( "insert into alumni(gid,student_no,name) values (:gid,:student_no,:name) " );  $stmt ->bindParam( ":gid" ,  $gid ,PDO::PARAM_STR);  $stmt ->bindParam( ":student_no" ,  $student_no ,PDO::PARAM_STR);  $stmt ->bindParam( ":name" ,  $name ,PDO::PARAM_STR);    $objReader  =  new  PHPExcel_Reader_Excel5();  //use excel2007   $objPHPExcel  =  $objReader ->load( 'bks.xls' );  //指定的文件   $sheet  =  $objPHPExcel ->getSheet(0);  $highestRow  =  $sheet ->getHighestRow();  // 取得总行数   $highestColumn  =  $sheet ->getHighestColumn();  // 取得总列数     for ( $j =1; $j <=10; $j ++)  {    $student_no  =  $objPHPExcel ->getActiveSheet()->getCell( "A" . $j )->getValue(); //第一列学号   $name  =  $objPHPExcel ->getActiveSheet()->getCell( "B" . $j )->getValue(); //第二列姓名   $gid  =  $objPHPExcel ->getActiveSheet()->getCell( "C" . $j )->getValue(); //第三列gid   }  //将获取的excel内容插入到数据库   //开源代码phpfensi测试数据   $stmt ->execute();  ?>  

php-excel-reader操作excel中的两个重要的方法:

1.dump(),它可以将excel内容以html格式输出:echo $data->dump(true,true);

2.将excel数据存入数组中,使用$data->sheets,打印下如下:

Array   (   [0] => Array   (   [maxrow] => 0   [maxcol] => 0   [numRows] => 5   [numCols] => 4   [cells] => Array   (   [1] => Array   (   [1] => 编号   [2] => 姓名   [3] => 年龄   [4] => 学号   )   [2] => Array   (   [1] => 1   [2] => 小红   [3] => 22   [4] => a1000   )   [3] => Array   (   [1] => 2   [2] => 小王   [3] => 33   [4] => a1001   )   [4] => Array   (   [1] => 3   [2] => 小黑   [3] => 44   [4] => a1002   )   [5] => Array   (   [2] => by   [3] => HdhCmsTestphpfensi测试数据   )   )   [cellsInfo] => Array   (   [1] => Array   (   [1] => Array   (   [xfIndex] => 15   )   [2] => Array   (   [xfIndex] => 15   )   [3] => Array   (   [xfIndex] => 15   )   [4] => Array   (   [xfIndex] => 15   )   )   [2] => Array   (   [1] => Array   (   [string] => 1   [raw] => 1   [rectype] => unknown   [format] => %s   [formatIndex] => 0   [fontIndex] => 0   [formatColor] =>   [xfIndex] => 15   )   [2] => Array   (   [xfIndex] => 15   )   [3] => Array   (   [string] => 22   [raw] => 22   [rectype] => unknown   [format] => %s   [formatIndex] => 0   [fontIndex] => 0   [formatColor] =>   [xfIndex] => 15   )   [4] => Array   (   [xfIndex] => 15   )   )   [3] => Array   (   [1] => Array   (   [string] => 2   [raw] => 2   [rectype] => unknown   [format] => %s   [formatIndex] => 0   [fontIndex] => 6   [formatColor] =>   [xfIndex] => 23   )   [2] => Array   (   [xfIndex] => 23   )   [3] => Array   (   [string] => 33   [raw] => 33   [rectype] => unknown   [format] => %s   [formatIndex] => 0   [fontIndex] => 6   [formatColor] =>   [xfIndex] => 23   )   [4] => Array   (   [xfIndex] => 23   )   )   [4] => Array   (   [1] => Array   (   [string] => 3   [raw] => 3   [rectype] => unknown   [format] => %s   [formatIndex] => 0   [fontIndex] => 0   [formatColor] =>   [xfIndex] => 15   )   [2] => Array   (   [xfIndex] => 15   )   [3] => Array   (   [string] => 44   [raw] => 44   [rectype] => unknown   [format] => %s   [formatIndex] => 0   [fontIndex] => 0   [formatColor] =>   [xfIndex] => 15   )   [4] => Array   (   [xfIndex] => 15   )   )   [5] => Array   (   [2] => Array   (   [xfIndex] => 15   )   [3] => Array   (   [xfIndex] => 24   [hyperlink] => Array   (   [flags] => 23   [desc] => HdhCmsTestphpfensi测试数据    [link] => http://HdhCmsTestphpfensi测试数据   )   )   )   )   )   [1] => Array   (   [maxrow] => 0   [maxcol] => 0   [numRows] => 0   [numCols] => 0   )   [2] => Array   (   [maxrow] => 0   [maxcol] => 0   [numRows] => 0   [numCols] => 0   )   )

查看更多关于PHP Excel类读取excel文件并且导入数据库 - php高级应的详细内容...

  阅读:44次