2014-10-29 2 views
0

내 코드에 대한 PHPExcel을 사용하고 있는데 나는이 부분에서 오류를 받고 있어요 :인수 1) 더블 PHPExcel_Cell의 인스턴스 여야합니다 주어진

라인 159 -179 : Catchable fatal error: Argument 1 passed to PHPExcel_Shared_Date::isDateTime() must be an instance of PHPExcel_Cell, double given, called in *****\uploadexceldata.php on line 187 and defined in ******\Classes\PHPExcel\Shared\Date.php on line 254

:

if($extitle == $h){ 

        $data = $objWorksheet->getCellByColumnAndRow($col, $row); 


          if(PHPExcel_Shared_Date::isDateTime($data)){ 
            $cellValue = $objWorksheet->getCellByColumnAndRow($col, $row)->getValue(); 
            $dateValue = PHPExcel_Shared_Date::ExcelToPHP($cellValue); 

            $dob = date('Y-m-d',$dateValue);        

             $tz = new DateTimeZone('Asia/Manila'); 
             $rage = DateTime::createFromFormat('Y-m-d', $dob, $tz)->diff(new DateTime('now', $tz))->y; 

          }else{ 

           $dob = "NULL"; 

          } 

       } 

라인

if($extitle == $i){ $data = $objWorksheet->getCellByColumnAndRow($col, $row)->getValue(); $mstatus = $data;    
       } 

       if($extitle == $j){ $data = $objWorksheet->getCellByColumnAndRow($col, $row)->getValue(); $category = $data;    
       } 

180 -185

나는 오류

하지만, 제가 189 행을 지울 때 if($extitle == $p){ $data = $objWorksheet->getCellByColumnAndRow($col, $row)->getValue();이 잘 동작합니다.

이제 왜 이런 일이 일어나고 어떻게 수정해야하는지 알고 싶습니다.

답변

1
$data = $objWorksheet->getCellByColumnAndRow($col, $row) 

는 PHPExcel_Cell 객체

$data = $objWorksheet->getCellByColumnAndRow($col, $row)->getValue(); 
을 반환

isDateTime() 방법은 인수로 PHPExcel_Cell 객체를 필요로

같은 숫자 나 문자열로 PHPExcel_Cell 개체, 단순히 스칼라 값을 반환하지 않습니다 , PHPExcel_Shared_Date::isDateTime($data)$data이 스칼라 일 때이 오류를 표시합니다.

당신이> 라인 159-에서 사용하고 같은 논리는 PHPExcel_Cell 개체로 $data을 얻는다면, 당신은 항상 할 때 메신저 나를 구원

$cellValue = $data->getValue(); 

또는

$data = $objWorksheet->getCellByColumnAndRow($col, $row)->getValue();   
    if(PHPExcel_Shared_Date::isDateTime($objWorksheet->getCellByColumnAndRow($col, $row))){ 
+0

감사합니다 선생님처럼 뭔가에 대한 후속 호출을 사용하는 문제가 생긴 – itsmecidz

관련 문제