PHP utilise PHPExcel pour implémenter le téléchargement par lots vers la base de données

墨辰丷
Libérer: 2023-03-27 10:12:01
original
1790 Les gens l'ont consulté

L'éditeur suivant vous proposera un article sur la façon d'utiliser PHP pour télécharger des lots dans la base de données à l'aide de PHPExcel. L'éditeur pense que c'est plutôt bien, alors je vais le partager avec vous maintenant et le donner comme référence. Suivons l'éditeur et jetons un coup d'œil

Cet exemple utilise uniquement le type de fichier .xls, c'est suffisant !

Description de la fonction : Seuls les fichiers xls de type Excel2003 peuvent être téléchargés, la taille ne dépasse pas 5 Mo. L'exemple de modèle téléchargeable peut être téléchargé après avoir ajouté des données !

Page test.php front-end

<!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>
Copier après la connexion

Résultats en cours :

Page Backend Process.php

<?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();
?>
Copier après la connexion

L'effet est : Si le fichier à télécharger n'est pas sélectionné, il affichera « Aucune table sélectionnée » ; si le fichier de table dépasse 5 M, il affichera une invite ; Le type de fichier à télécharger n'est pas xls, cela vous sera demandé !

Recommandations associées :

Comment implémenter le téléchargement par lotsdes données vers la base de données en php

Framework thinkPHP5 Intégrez plupload pour réaliser le téléchargement par lots d'images

Thinkphp5+PHPExcel pour réaliser le téléchargement par lotsfonction de données de table

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal