thinkphp5 (tp5)导入excel

秒速五厘米 2021-09-27 04:14 1130阅读 0赞

必须要先下载一个插件,即https://github.com/PHPOffice/PHPExcel
解压后,里面有个classes文件夹,我们需要把classes文件夹名修改为为PHPExcel
这里写图片描述

,然后把他复制到根目录中的extend目录下.

这里写图片描述

然后,在控制器中这样引入

  1. import('phpexcel.PHPExcel', EXTEND_PATH);

也可以放在根目录中的/vendor/目录中
引入方法为

  1. vendor("PHPExcel.PHPExcel");

具体案例
数据库
这里写图片描述
这里写图片描述
一,模板中这样写

  1. <form action="{:url('index/upload_excel')}" method="post" enctype="multipart/form-data">
  2. <input name='excel' type='file'/>
  3. <input type='submit' value="excel导入,提交"/>
  4. </form><br>

控制器中这样

  1. public function upload_excel() {
  2. $request = \think\Request::instance();
  3. $file = $request->file('excel');
  4. $save_path = ROOT_PATH . 'uploads/';
  5. $info = $file->move($save_path);
  6. //print_r($info);exit;
  7. $filename=$save_path . DIRECTORY_SEPARATOR . $info->getSaveName();
  8. if(file_exists($filename)) {
  9. //如果文件存在
  10. import('phpexcel.PHPExcel', EXTEND_PATH);
  11. if( strstr($filename,'.xlsx'))
  12. {
  13. $PHPReader = new \PHPExcel_Reader_Excel2007();
  14. }
  15. else
  16. {
  17. $PHPReader = new \PHPExcel_Reader_Excel5();
  18. }
  19. //载入excel文件
  20. $PHPExcel = $PHPReader->load($filename);
  21. $sheet = $PHPExcel->getActiveSheet(0);//获得sheet
  22. $highestRow = $sheet->getHighestRow(); // 取得共有数据数
  23. $data=$sheet->toArray();
  24. for($i=0;$i<$highestRow;$i++){
  25. $user['wxid']=trim($data[$i][0]);//excel中的第一栏
  26. //$user['name']=$data[$i][1];//第二栏
  27. if(strlen($user['wxid'])==11 && substr($user['wxid'] , 0 , 1) =='1' ){
  28. //如果内容为11位的手机号,则入库
  29. $new_datas[] = $user;
  30. }
  31. }
  32. if(count($new_datas)>0){
  33. db('data')->insertAll($new_datas, true);
  34. $this->success('上传成功' . count($new_datas) . '条数据');
  35. }else{
  36. $this->success('内容为空');
  37. }
  38. // return $ret;
  39. }else{
  40. return array("resultcode" => -5, "resultmsg" => "文件不存在", "data" => null);
  41. }
  42. }

请打赏谢谢大佬

发表评论

表情:
评论列表 (有 0 条评论,1130人围观)

还没有评论,来说两句吧...

相关阅读