好得很程序员自学网

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

PHP把excel(xls)文件导入mysql数据库 - php高级应用

PHP把excel(xls)文件导入mysql数据库

excel导入mysql数据库我整理了两种办法,一种就是使用PHP-ExcelReader来导入,另一种是把excel转换成csv文件直接使用php相关函数导入即可.

昨晚一个客户联系我做网站,提出的要求是需要把客户提供的excel文件里面的数据导入到mysql数据库,最常用的方法就是先把xls文件导出为csv格式的文件,然后在解析csv格式的文件导入到mysql数据库。方法比较冗余,而且分好几步进行,很不方便,断桥残雪今天介绍一种方法是直接跳过csv的中间环节,直接把excel文件导入mysql数据库。

首先我们需要下载PHP-ExcelReader这是一个开源的项目,主要是来解析excel的文件,下载地址:http://sourceforge.net/projects/phpexcelreader,下载之后解压,主要用到excel文件夹里面的两个文件reader.php和oleread.php,这个文件默认的是oleread.inc,不清楚为啥,一堆e文,没看,直接改名即可.

在reader.php文件中找到以下类似代码,第一行既是,改成正确的oleread.php路径即可:require_once 'oleread.php';然后新建一个php文件引入reader.php,代码如下:

<?php   require_once   'Excel/reader.php' ;   $data  =  new  Spreadsheet_Excel_Reader();  $data ->setOutputEncoding( 'gbk' ); //此处设置编码,一般都是gbk模式     $data ->read( 'Book1.xls' ); //文件路径111cn.net   //开源代码phpfensi测试数据   error_reporting (E_ALL ^ E_NOTICE);  //这里我就只循环输出excel文件的内容了,要入库,只要把输出的地方,写一段mysql语句即可~   for  ( $i  = 1;  $i  <=  $data ->sheets[0][ 'numRows' ];  $i ++) {    for  ( $j  = 1;  $j  <=  $data ->sheets[0][ 'numCols' ];  $j ++) {     echo   "" ".$data->sheets[0]['cells'][$i][$j]." "," ;   }    echo   "n" ;  }  ?> 

注意 :请不要使用PHP-ExcelReader压缩包里面的xls进行测试,断桥残雪发现,那个文件既是使用excel也打不开,所以是错误的.

断桥残雪使用上面的方法解析了一个1.4M的数据,都显示正常,所以大家可以放心使用.

phpexcel比较费资源,不过并不是所有的excel都能读取,我们可以转换成csv来操作.

首先确认你的数据库是什么编码的,以utf-8为例,你首先打开excel 文件,然后保存,选择为另存为.csv文件,然后用文本编辑器打开.csv文件,另存为utf-8的csv,然后你写php 可以使用php 的getcsv  打开,这样确保你有的字段中含有,而导致解析错误,然后把解析的结果导入到数据库中.

如果是csv格式的我就不必要这么麻烦了,代码如下:

<?php  //连接数据库文件 HdhCmsTestphpfensi测试数据   $connect =mysql_connect( "localhost" , "admin" , "admin" )  or   die ( "链接数据库失败!" );   //连接数据库(test)    mysql_select_db( "testcg" , $connect )  or   die  (mysql_error());    $temp =file( "test.csv" ); //连接EXCEL文件,格式为了.csv    for  ( $i =0; $i  < count ( $temp ); $i ++)   {   $string = explode ( "," , $temp [ $i ]); //通过循环得到EXCEL文件中每行记录的值    //将EXCEL文件中每行记录的值插入到数据库中    $q = "insert into ceshi (name,num,dom) values('$string[0]','$string[1]','$string[2]');" ;   mysql_query( $q )  or   die  (mysql_error());    if  (!mysql_error());   {   echo   " 成功导入数据!" ;   }   echo   $string [4]. "n" ;   unset( $string );   }   ?>

查看更多关于PHP把excel(xls)文件导入mysql数据库 - php高级应用的详细内容...

  阅读:56次