2014-10-29 99 views
0

我使用PHPExcel对我的代码,我在这部分得到一个错误:参数1传递给PHPExcel_Shared_Date :: isDateTime()必须PHPExcel_Cell的一个实例,双定

线159 -179:

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"; 

          } 

       } 

线180 -185

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

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

我得到的错误: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 == $q){ 

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

//in this part the error occured  



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

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



          }else{ 

           $efdate = "NULL"; 

          } 
       } 

但是,当我删除行189其中if($extitle == $p){ $data = $objWorksheet->getCellByColumnAndRow($col, $row)->getValue();它工作正常。

现在,我想知道为什么发生这种情况,我该如何解决它。

回答

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

返回PHPExcel_Cell对象

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

不返回PHPExcel_Cell对象,简单地标量值,诸如数字或字符串

作为isDateTime()方法需要PHPExcel_Cell对象作为参数,PHPExcel_Shared_Date::isDateTime($data)将在$data是标量时出现此错误

要么使用您使用的是线159-即>同样的逻辑也得到$data作为PHPExcel_Cell对象,并使用后续调用

$cellValue = $data->getValue(); 

或类似

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

谢谢先生,你总是救我时,即时通讯麻烦 – itsmecidz 2014-10-29 09:57:52

相关问题