使用PHPExcel导入Excel到MySql

时间:2023-03-10 02:42:08
使用PHPExcel导入Excel到MySql
.连接数据库的connection.php文件
<?php
//修改下面代码来联接数据库
// mysql_connect打开一个到 MySQL 服务器的连接,如果成功则返回一个 MySQL 连接标识,失败则返回 FALSE。
$mysql=mysql_connect("localhost","root","root"); //integer mysql_connect(主机,用户名,口令);
mysql_select_db("test",$mysql); //boolean mysql_select_db(数据库名,连接号);
mysql_query("set names GBK"); //这就是指定数据库字符集,一般放在连接数据库后面就系了
?>

  

 .页面调用 
<?php

require("connection.php"); 

require("UpLoad_Excel.php"); 

if($leadExcel == "true")
{   //获取上传的文件名
  $filename = $HTTP_POST_FILES['inputExcel']['name'];   //上传到服务器上的临时文件名
  $tmp_name = $_FILES['inputExcel']['tmp_name'];
  $msg = uploadFile($filename,$tmp_name);
} ?> <form method="post" enctype="multipart/form-data">
  <input type="hidden" name="leadExcel" value="true">
  <table align="center" width="90%" border="0">
  <tr>
    <td>
      <input type="file" name="inputExcel"><input type="submit" value="导入数据">
    </td>
  </tr>
  </table>
</form>

  

.导入的UpLoad_Excel.php文件
<?php

require("connection.php");

//导入Excel文件
function uploadFile($file,$filetempname)
{   //自己设置的上传文件存放路径
  $filePath = 'upFile/';
  $str = "";   //下面的路径按照你PHPExcel的路径来修改
  set_include_path('.'. PATH_SEPARATOR . 'D:\xampp\htdocs\XM1\PHPExcel' . PATH_SEPARATOR .get_include_path());   require_once 'PHPExcel.php';
  require_once 'PHPExcel\IOFactory.php';
  require_once 'PHPExcel\Reader\Excel5.php';   $filename=explode(".",$file);//把上传的文件名以“.”好为准做一个数组。
  $time=date("y-m-d-H-i-s");//去当前上传的时间
  $filename[0]=$time;//取文件名t替换
  $name=implode(".",$filename); //上传后的文件名
  $uploadfile=$filePath.$name;//上传后的文件名地址   //move_uploaded_file() 函数将上传的文件移动到新位置。若成功,则返回 true,否则返回 false。
  $result=move_uploaded_file($filetempname,$uploadfile);//假如上传到当前目录下
  if($result) //如果上传文件成功,就执行导入excel操作
  {
    $objReader = PHPExcel_IOFactory::createReader('Excel5');//use excel2007 for 2007 format
    $objPHPExcel = $objReader->load($uploadfile);
    $sheet = $objPHPExcel->getSheet(0);
    $highestRow = $sheet->getHighestRow(); // 取得总行数
    $highestColumn = $sheet->getHighestColumn(); // 取得总列数     //循环读取excel文件,读取一条,插入一条
    for($j=2;$j<=$highestRow;$j++)
    {
      for($k='A';$k<=$highestColumn;$k++)
      {
        $str .= iconv('utf-8','gbk',$objPHPExcel->getActiveSheet()->getCell("$k$j")->getValue()).'\\';//读取单元格
      }
      //explode:函数把字符串分割为数组。
      $strs = explode("\\",$str);
      $sql = "INSERT INTO tab_zgjx_award (jx_name,jx_degree,jx_item_name,jx_unit,dy_originator,de_originator,xm_intro,hj_item_id)       VALUES('".
        $strs[0]."','". //奖项名称
        $strs[1]."','". //奖项届次
        $strs[2]."','". //获奖项目名
        $strs[3]."','". //获奖单位
        $strs[4]."','". //第一发明人
        $strs[5]."','". //第二发明人
        $strs[6]."','". //项目简介
        $strs[7]."')"; //获奖项目编号       mysql_query("set names GBK");//这就是指定数据库字符集,一般放在连接数据库后面就系了
      if(!mysql_query($sql))
      {
        return false;
      }
      $str = "";
    }     unlink($uploadfile); //删除上传的excel文件
    $msg = "导入成功!";
  } else {
    $msg = "导入失败!";
  } return $msg;
}
?>