PHPExcel導入EXCEL文件到數據庫

開發環境THINKPHP,本方法導入可導入非2007的EXCEL文件

PHPExcel插件放在ThinkPHP/Extend/Vendor/目錄下


class ImportAction extends CommonAction{
    public function load(){
        import('@.ORG.Util.UploadFile');
        $upload = new UploadFile();// 實例化上傳類
        $upload->maxSize  = 5000000 ;// 設置附件上傳大小
        $upload->allowExts  = array('xls', 'xlsx');// 設置附件上傳類型
        $upload->savePath =  './Uploads/';// 設置附件上傳目錄
        if(!$upload->upload()) {// 上傳錯誤提示錯誤信息
            $this->error($upload->getErrorMsg());
        }else{// 上傳成功 獲取上傳文件信息
            $info =  $upload->getUploadFileInfo();
        }
        $type=$_POST['type'];
        if($type==1){
            $name="Account";
        }else if($type==2){
            $name="Deposit";
        }else if($type==3){
            $name="Transaction";
        }
        $model=M($name);
        Vendor('PHPExcel.IOFactory'); //導入第三方類庫
$inputFileName =$upload->savePath.$info[0]['savename']; //獲得上傳文件 
        
         $objReader = new PHPExcel_Reader_Excel5();
            $objPHPExcel = $objReader->load($inputFileName);
            $sheet = $objPHPExcel->getSheet(0);
            $highestRow = $sheet->getHighestRow(); // 取得總行數
            $highestColumn = $sheet->getHighestColumn(); // 取得總列數
            $tempArray = array();
            for($j=2;$j<=$highestRow;$j++){
                for($k='A';$k<=$highestColumn;$k++){ 
                    $tempArray[] = $objPHPExcel->getActiveSheet()->getCell("$k$j")->getValue(); 
                    // print_r($objPHPExcel->getActiveSheet()->getCell("$k$j")->getValue());exit;
                } 
                    //print_r($tempArray);exit;
                    if($type==1){
                        $tempArray['full_name']=$tempArray[0];
                        $tempArray['user_name']=$tempArray[1];
                        $tempArray['simulation_account']=$tempArray[2];
                        $tempArray['real_account']=$tempArray[3];
                        $tempArray['createtime']=time();
                    }else if($type==2){
                        $tempArray['real_account']=$tempArray[0];
                        $tempArray['deposit']=$tempArray[0];
                        $tempArray['createtime']=time();
                    }else if($type==3){
                        $tempArray['real_account']=$tempArray[0];
                        $tempArray['trading_lot']=$tempArray[0];
                        $tempArray['createtime']=time();
                    }
    // print_r($tempArray);exit;
                    $model->create($tempArray);
                    $model->add();
                    
                    unset($tempArray);
                }
                    
                    unlink($inputFileName); //刪除上傳的文件
                    
                    $this->success('資源導入成功!');
            
    }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章