Heim >Backend-Entwicklung >PHP-Tutorial >PHP verwendet PHPExcel, um den Batch-Upload in die Datenbank zu implementieren

PHP verwendet PHPExcel, um den Batch-Upload in die Datenbank zu implementieren

墨辰丷
墨辰丷Original
2018-05-21 17:48:421826Durchsuche

Der folgende Editor bringt Ihnen einen Artikel darüber, wie Sie mit PHPExcel Stapel in die Datenbank in PHP hochladen. Der Herausgeber findet es ziemlich gut, deshalb teile ich es jetzt mit Ihnen und gebe es als Referenz. Folgen wir dem Editor und schauen wir uns das an.

Dieses Beispiel verwendet nur den Dateityp xls!

Funktionsbeschreibung: Es können nur XLS-Dateien vom Typ Excel2003 hochgeladen werden, deren Größe 5 MB nicht überschreitet. Die herunterladbare Beispielvorlage kann nach dem Hinzufügen von Daten hochgeladen werden!

Front-End test.php-Seite

<!DOCTYPE html>
<html>
<head>
  <title></title>
</head>
<meta charset="utf-8">
<body>
<form enctype="multipart/form-data" action="./Process.php" method="post">
  <table>
    <tr><td align="center" colspan="2"><font style="font-size: 40px; font-family: 华文彩云;" >上传表格</font></td></tr>
    <tr><td>请先<a href="./sample/sample01.xls" rel="external nofollow" >下载excel例子模板</a>编辑后上传文件</td></tr>
     <tr>
    <td>请选择你要上传的文件</td>
    <td><input type="file" name="myfile"></td>
    </tr>
    <tr><td><input type="submit" value="上传文件" /></td></tr>
  </table>
</form>
</body>
</html>

Laufendes Ergebnis:

Backend Process.php-Seite

<?php
header("Content-type:text/html;charset=utf-8");

//链接数据库
$link = @mysql_connect(&#39;localhost&#39;,&#39;root&#39;,&#39;&#39;) or die(&#39;连接数据库失败&#39;);
mysql_select_db(&#39;test&#39;,$link);
mysql_query(&#39;set names utf8&#39;);

function upExecel(){

//判断是否选择了要上传的表格
if (empty($_POST[&#39;myfile&#39;])) {
  echo "<script>alert(您未选择表格);history.go(-1);</script>";
}

//获取表格的大小,限制上传表格的大小5M
$file_size = $_FILES[&#39;myfile&#39;][&#39;size&#39;];
if ($file_size>5*1024*1024) {
echo "<script>alert(&#39;上传失败,上传的表格不能超过5M的大小&#39;);history.go(-1);</script>";
  exit();
}

//限制上传表格类型
$file_type = $_FILES[&#39;myfile&#39;][&#39;type&#39;];
//application/vnd.ms-excel 为xls文件类型
if ($file_type!=&#39;application/vnd.ms-excel&#39;) {
  echo "<script>alert(&#39;上传失败,只能上传excel2003的xls格式!&#39;);history.go(-1)</script>";
 exit();
}

//判断表格是否上传成功
if (is_uploaded_file($_FILES[&#39;myfile&#39;][&#39;tmp_name&#39;])) {
  require_once &#39;PHPExcel.php&#39;;
  require_once &#39;PHPExcel/IOFactory.php&#39;;
  require_once &#39;PHPExcel/Reader/Excel5.php&#39;;
  //以上三步加载phpExcel的类

  $objReader = PHPExcel_IOFactory::createReader(&#39;Excel5&#39;);//use excel2007 for 2007 format 
  //接收存在缓存中的excel表格
  $filename = $_FILES[&#39;myfile&#39;][&#39;tmp_name&#39;];
  $objPHPExcel = $objReader->load($filename); //$filename可以是上传的表格,或者是指定的表格
  $sheet = $objPHPExcel->getSheet(0); 
  $highestRow = $sheet->getHighestRow(); // 取得总行数 
  // $highestColumn = $sheet->getHighestColumn(); // 取得总列数
  
  //循环读取excel表格,读取一条,插入一条
  //j表示从哪一行开始读取 从第二行开始读取,因为第一行是标题不保存
  //$a表示列号
  for($j=2;$j<=$highestRow;$j++) 
  {
    $a = $objPHPExcel->getActiveSheet()->getCell("A".$j)->getValue();//获取A(业主名字)列的值
    $b = $objPHPExcel->getActiveSheet()->getCell("B".$j)->getValue();//获取B(密码)列的值
    $c = $objPHPExcel->getActiveSheet()->getCell("C".$j)->getValue();//获取C(手机号)列的值
    $d = $objPHPExcel->getActiveSheet()->getCell("D".$j)->getValue();//获取D(地址)列的值

    //null 为主键id,自增可用null表示自动添加
    $sql = "INSERT INTO house VALUES(null,&#39;$a&#39;,&#39;$b&#39;,&#39;$c&#39;,&#39;$d&#39;)";
    // echo "$sql";
    // exit();
    $res = mysql_query($sql);
    if ($res) {
      echo "<script>alert(&#39;添加成功!&#39;);window.location.href=&#39;./test.php&#39;;</script>";
      
    }else{
      echo "<script>alert(&#39;添加失败!&#39;);window.location.href=&#39;./test.php&#39;;</script>";
      exit();
    }
  }
}
}

//调用
upExecel();
?>

Der Effekt ist: Wenn die hochzuladende Datei nicht ausgewählt ist, wird die Meldung „Keine Tabelle ausgewählt“ angezeigt. Wenn die Tabellendatei größer als 5 MB ist, wird angezeigt, ob der Dateityp vorhanden ist Hochgeladen ist nicht XLS, es wird eine Aufforderung angezeigt!

Verwandte Empfehlungen:

So implementieren Sie Batch-UploadDaten in die Datenbank in PHP

thinkPHP5-Framework Integrieren Sie plupload, um den Batch-Upload von Bildern zu realisieren

Thinkphp5+PHPExcel, um Batch-UploadTabellendatenfunktion zu realisieren

Das obige ist der detaillierte Inhalt vonPHP verwendet PHPExcel, um den Batch-Upload in die Datenbank zu implementieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn