Thinkphp5+PHPExcel实现批量上传表格数据功能

1.首先要下载PHPExcel放到vendor文件夹下,我的路径是:项目/vendor/PHPExcel/,把下载的PHPExcel文件放在这里

Thinkphp5+PHPExcel实现批量上传表格数据功能

2.前端代码

<!DOCTYPE html>
<html>
<head>
  <title>批量导入数据</title>
</head>
<body>
<form action=\"{:url(\'/index/index/importExcel\')}\" method=\"post\" enctype=\"multipart/form-data\">
  <input type=\"file\" name=\"myfile\"><br/>
  <input type=\"submit\" value=\"批量的导入\">
</form>
</body>
</html>

3.后台代码

/**
  * 导入表格数据
  * 先把文件上传到服务器,然后再读取数据存到数据库
  */
  public function importExcel(){
    header(\"content-type:text/html;charset=utf-8\");
    //上传excel文件
    $file = request()->file(\'myfile\');
    //移到/public/uploads/excel/下
    $info = $file->move(ROOT_PATH.\'public\'.DS.\'uploads\'.DS.\'excel\');
    //上传文件成功
    if ($info) {
      //引入PHPExcel类
      vendor(\'PHPExcel.PHPExcel.Reader.Excel5\');
      //获取上传后的文件名
      $fileName = $info->getSaveName();
      //文件路径
      $filePath = \'public/uploads/excel/\'.$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[\'name\'] = $objPHPExcel->getActiveSheet()->getCell(\"A\".$j)->getValue();
        $data[\'tel\'] = $objPHPExcel->getActiveSheet()->getCell(\"B\".$j)->getValue();
        $data[\'addr\'] = $objPHPExcel->getActiveSheet()->getCell(\"C\".$j)->getValue();
        $last_id = Db::table(\'users\')->insertGetId($data);//保存数据,并返回主键id
        if ($last_id) {
          echo \"第\".$j.\"行导入成功,users表第:\".$last_id.\"条!<br/>\";
        }else{
          echo \"第\".$j.\"行导入失败!<br/>\";
        }
      }
    }else{
      echo \"上传文件失败!\";
    }
  }

输出结果:

Thinkphp5+PHPExcel实现批量上传表格数据功能

注意:

引入第三方类库使用vendor();是按照命名空间的形式。底层代码会把“ . ”自动替换成\” / \”,所以使用“ / ”时要用“ . ”代替;

以上代码可以直接复制使用,但是数据库相关信息要改成你自己的!

总结

以上所述是小编给大家介绍的Thinkphp5+PHPExcel实现批量上传表格数据功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容