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

2020-01-03 10:08:47 浏览数 (1)

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

  1. 利用composer下载类库 composer require phpoffice/phpspreadsheet
  2. 找到源码在vender下面有个最新下载的phpoffice类库,找到samples下面的Basic,查看里面的自带demo
  1. 自己新建一个xls文档,用来做测试使用,如果所示
  1. 编写上传程序,此处前端省略(直接看代码里面的注释)
代码语言:javascript复制
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').'publicuploadsexcel\'.$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 = appadminmodelCar::create($data);
        }
        if($suc){
            echo "<script>alert('导入成功');window.location.href='/admin/car/index';</script>";
        }else{
            echo "<script>alert('导入失败');window.history.go(-1);</script>";
        }
    }

本文为北溟有鱼QAQ原创文章,转载无需和我联系,但请注明来自北溟有鱼QAQ https://www.umdzz.cn

0 人点赞