上传EXCEL文件并读取到数据库

来源:互联网 发布:中国能源研究会 知乎 编辑:程序博客网 时间:2024/05/21 09:58
      public function test(){       if(isset($_FILES['Bl'])){  import('ORG.Net.UploadFile');$upload = new UploadFile();// 实例化上传类        $upload->maxSize  = 3292200 ;// 设置附件上传大小        $upload->allowExts  = array('xlsx','xls');// 设置附件上传类型        $upload->savePath =  './Public/uploads/';// 设置附件上传目录        $upload->saveRule = $this->fileNameForBannerH5BookList();         if($upload->upload()) {           $info= $upload-> getUploadFileInfo();//获取上传的文件信息           $savepathinfo=$info[0]['savepath'].$info[0]['savename'];//保存的完整路径位置           import('ORG.Util.PHPExcel');//加载PHPExcel包           // 获取扩展名          $extension=strtolower(pathinfo($info[0]['savename'],PATHINFO_EXTENSION));          // 通过扩展名决定使用的类           if($extension == 'xls'){  //判断后缀,实例化PHPEXcel类并选择对应版本          $objReader = PHPExcel_IOFactory::createReader('Excel5');           }else{           $objReader = PHPExcel_IOFactory::createReader('Excel2007');           }           // 通过该类加载该excel           $objPHPExcel = $objReader->load($savepathinfo,$encode='utf-8');//打开文件并设置编码,否则表格类有中文会乱码                      //获取sheet部分的信息(如有shee2,sheet3一并读取)           $sheet = $objPHPExcel->getSheet(0);           // 取得总行数,返回有数据的最后一行数值                $highestRow = $sheet->getHighestRow();                // 取得总列数,返回有数据的最后一列字母值+1                $highestColumn = $sheet->getHighestColumn();                                 // 清空原有  flag=1                $Blist = D('booklist');                $Blist -> where('flag > 0') -> delete();                // dump($highestRow);exit;                // 每次处理一行 / 处理每一行                $blist = array();                  for($i=2;$i<=200;$i++) {                  $blist[$i]['bid']=$objPHPExcel->getActiveSheet()->getCell("A".$i)->getValue();                  $blist[$i]['bo']=$objPHPExcel->getActiveSheet()->getCell("B".$i)->getValue();                  $blist[$i]['bg']=$objPHPExcel->getActiveSheet()->getCell("C".$i)->getValue();                  $blist[$i]['bg']=str_replace(PHP_EOL,'<br>',$blist[$i]['book_guide']);                  $blist[$i]['flag']=$objPHPExcel->getActiveSheet()->getCell("D".$i)->getValue();                    }                foreach($blist as $v){                $rst = $Blist -> add($v);                }                    if($i > 200){                     $this->redirect('C/A','',0.01,'<script>alert("配置模块成功");</script>');                    }else{                    $this->error('请重新上传');                    }                }else {                    $this->error('请重新上传');                }          }      }