Thinkphp5+PHPExcel réalise la fonction de téléchargement par lots de la table data_php, exemple

韦小宝
Libérer: 2023-03-17 18:12:01
original
2320 Les gens l'ont consulté

Cet article présente principalement la fonction de téléchargement par lots de données de table à l'aide de Thinkphp5+PHPExcel. Les amis qui en ont besoin peuvent s'y référer

1. PHPExcel. Allez dans le dossier du fournisseur, mon chemin est : project/vendor/PHPExcel/, placez le fichier PHPExcel téléchargé ici

2. Code frontal


<!DOCTYPE html>
<html>
<head>
  <title>批量导入数据</title>
</head>
<body>
<form action="{:url(&#39;/index/index/importExcel&#39;)}" method="post" enctype="multipart/form-data">
  <input type="file" name="myfile"><br/>
  <input type="submit" value="批量的导入">
</form>
</body>
</html>
Copier après la connexion


3. Code backend


/**
  * 导入表格数据
  * 先把文件上传到服务器,然后再读取数据存到数据库
  */
  public function importExcel(){
    header("content-type:text/html;charset=utf-8");
    //上传excel文件
    $file = request()->file(&#39;myfile&#39;);
    //移到/public/uploads/excel/下
    $info = $file->move(ROOT_PATH.&#39;public&#39;.DS.&#39;uploads&#39;.DS.&#39;excel&#39;);
    //上传文件成功
    if ($info) {
      //引入PHPExcel类
      vendor(&#39;PHPExcel.PHPExcel.Reader.Excel5&#39;);
      //获取上传后的文件名
      $fileName = $info->getSaveName();
      //文件路径
      $filePath = &#39;public/uploads/excel/&#39;.$fileName;
      //实例化PHPExcel类
      $PHPReader = new \PHPExcel_Reader_Excel5();
      //读取excel文件
      $objPHPExcel = $PHPReader->load($filePath);
      //读取excel文件中的第一个工作表
      $sheet = $objPHPExcel->getSheet(0);
      $allRow = $sheet->getHighestRow();  //取得总行数
      //$allColumn = $sheet->getHighestColumn();  //取得总列数
      //从第二行开始插入,第一行是列名
      for ($j=2; $j <= $allRow; $j++) {
        $data[&#39;name&#39;] = $objPHPExcel->getActiveSheet()->getCell("A".$j)->getValue();
        $data[&#39;tel&#39;] = $objPHPExcel->getActiveSheet()->getCell("B".$j)->getValue();
        $data[&#39;addr&#39;] = $objPHPExcel->getActiveSheet()->getCell("C".$j)->getValue();
        $last_id = Db::table(&#39;users&#39;)->insertGetId($data);//保存数据,并返回主键id
        if ($last_id) {
          echo "第".$j."行导入成功,users表第:".$last_id."条!<br/>";
        }else{
          echo "第".$j."行导入失败!<br/>";
        }
      }
    }else{
      echo "上传文件失败!";
    }
  }
Copier après la connexion


Résultats de sortie :


Remarque :

Introduire une classe tierce les bibliothèques à utiliser supplier(); se présentent sous la forme de espace de noms . Le code sous-jacent remplacera automatiquement "." par "/", donc lorsque vous utilisez "/", utilisez "." changé par le vôtre !

RésuméCe qui précède est la fonction Thinkphp5+PHPExcel introduite par l'éditeur pour implémenter le téléchargement par lots de données de table, j'espère que ce sera le cas. utile à tout le monde Aide, si vous avez des questions, veuillez les poser dans notre communauté Q&A.

Recommandations associées :

Comment importer des données sans actualiser à l'aide de ThinkPHP, uploadify, upload, PHPExcel

Un exemple de la façon dont phpexcel importe Excel pour traiter le code Big Data

Utilisez PHPExcel pour télécharger des données par lots

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