加入收藏 | 设为首页 | 会员中心 | 我要投稿 大连站长网 (https://www.0411zz.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP把excel xls 文件导进mysql数据库

发布时间:2022-02-16 18:51:21 所属栏目:PHP教程 来源:互联网
导读:excel导入mysql数据库我整理了两种办法,一种就是使用PHP-ExcelReader来导入,另一种是把excel转换成csv文件直接使用php相关函数导入即可. 昨晚一个客户联系我做网站,提出的要求是需要把客户提供的excel文件里面的数据导入到mysql数据库,最常用的方法就是
  excel导入mysql数据库我整理了两种办法,一种就是使用PHP-ExcelReader来导入,另一种是把excel转换成csv文件直接使用php相关函数导入即可.
 
  昨晚一个客户联系我做网站,提出的要求是需要把客户提供的excel文件里面的数据导入到mysql数据库,最常用的方法就是先把xls文件导出为csv格式的文件,然后在解析csv格式的文件导入到mysql数据库。方法比较冗余,而且分好几步进行,很不方便,断桥残雪今天介绍一种方法是直接跳过csv的中间环节,直接把excel文件导入mysql数据库。
 
  在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
  //开源代码Cuoxin.com
  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也打不开,所以是错误的.
 
  首先确认你的数据库是什么编码的,以utf-8为例,你首先打开excel 文件,然后保存,选择为另存为.csv文件,然后用文本编辑器打开.csv文件,另存为utf-8的csv,然后你写php 可以使用php 的getcsv  打开,这样确保你有的字段中含有,而导致解析错误,然后把解析的结果导入到数据库中.
 
  如果是csv格式的我就不必要这么麻烦了,代码如下:
 
  <?php
  //连接数据库文件 www.Cuoxin.com
  $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);  
  }  
  ?>
 

(编辑:大连站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!