thinkphp5使用phpexcel实现导入导出功能

1.下载PHPExcel:https://share.weiyun.com/5IN8lEY

2.解压文件:

​3.将classes改为PHPExcel,复制到根目录的vendor:

3.前端代码:

<form method="post" action="{:url('savestudentImport')}" class="form-signin" enctype="multipart/form-data" >  
    <input name="excel" type="file" class="form-control">  
    <button class="btn btn-lg btn-primary btn-block">导入</button>  
</form> 

4控制器中导入方法:

    //导入功能
     public function savestudentImport(){  
        //import('phpexcel.PHPExcel', EXTEND_PATH);//方法二  
        vendor("PHPExcel.PHPExcel"); //方法一  
        $objPHPExcel = new \PHPExcel();  
  
        //获取表单上传文件  
        $file = request()->file('excel');  
        $info = $file->validate(['size'=>15678,'ext'=>'xlsx,xls,csv'])->move(ROOT_PATH . 'public' . DS . 'excel');  
        if($info){  
            $exclePath = $info->getSaveName();  //获取文件名  
            $file_name = ROOT_PATH . 'public' . DS . 'excel' . DS . $exclePath;   //上传文件的地址  
            $objReader =\PHPExcel_IOFactory::createReader('Excel2007');  
            $obj_PHPExcel =$objReader->load($file_name, $encode = 'utf-8');  //加载文件内容,编码utf-8  
            echo "<pre>";  
            $excel_array=$obj_PHPExcel->getsheet(0)->toArray();   //转换为数组格式  
            array_shift($excel_array);  //删除第一个数组(标题);  
            $data = [];  
            $i=0;  
            foreach($excel_array as $k=>$v) {  
                $data[$k]['name'] = $v[0];  
                $data[$k]['type'] = $v[1];  
                $i++;  
            }  
           $success=Db::name('fuzhuang')->insertAll($data); //批量插入数据  这里的数据表改为你需要的。
           //$i=  
           $error=$i-$success;  
           $this->success('导入成功{$success}条记录,失败{$error}条记录','lan/index');
            // echo "总{$i}条,成功{$success}条,失败{$error}条。";  
           // Db::name('t_station')->insertAll($city); //批量插入数据  
        }else{  
            // 上传失败获取错误信息  
            echo $file->getError();  
        }  
  
    } 

5.我们在数据库创建fuzhuang表:

​6.创建一个excel表格:

7.

8.再次查看数据库:

猜你喜欢

转载自www.cnblogs.com/mo3408/p/10199659.html