TP5.1中导入Excel表到数据库

TP5.1中利用Excel库导入数据到mysql

  1. 利用composer下载类库 composer require phpoffice/phpspreadsheet
  2. 找到源码在vender下面有个最新下载的phpoffice类库,找到samples下面的Basic,查看里面的自带demo
  3. 自己新建一个xls文档,用来做测试使用,如果所示
  4. 编写上传程序,此处前端省略(直接看代码里面的注释)
public function upload(Request $request)
    {
        //通过注入的request对象获取上传的文件
        $file  = $request->file('excel');
		//对文件大小和格式进行验证
        $info = $file->validate(['size'=>5*1024*1024,'ext'=>'xls'])->move( 'uploads/excel');
        if(!$info){
           $this->error($file->getError());
        }
        //声明读取的文件格式
        $objReader = IOFactory::createReader('Xls');

        //加载excel文件
        $objPHPExcel = $objReader->load(Env::get('root_path').'public\uploads\excel\\'.$info->getSaveName());
        //读取默认工作表
        $worksheet = $objPHPExcel->getSheet(0);
        //取得一共有多少行
        $allRow = $worksheet->getHighestRow();
        $data = [];
        for ($i = 3; $i <= $allRow; $i++)
        {
            $data['car_num'] = $objPHPExcel->getActiveSheet()->getCell('A'.$i)->getValue();
            $data['car_name'] = $objPHPExcel->getActiveSheet()->getCell('B'.$i)->getValue();
			//防止出现空白Excel导致mysql报错,对数据做下判断
            if(empty($data['car_num']) && empty($data['car_name'])){
				//跳出循环
                break;
            }
            $data['add_time'] = time();
			//插入数据库
            $suc = \app\admin\model\Car::create($data);
        }
        if($suc){
            echo "<script>alert('导入成功');window.location.href='/admin/car/index';</script>";
        }else{
            echo "<script>alert('导入失败');window.history.go(-1);</script>";
        }
    }

北溟有鱼QAQ博客
请先登录后发表评论
  • 最新评论
  • 总共0条评论