2013-02-04 22 views
0

我有一段代碼,警予phpexcel文件閱讀器沒有反應

$excelFile = '/tmp/sheet.xls' ; 
    Yii::import('application.vendors.PHPExcel',true); 
    $inputFileType = PHPExcel_IOFactory::identify($excelFile); 
    $objReader = PHPExcel_IOFactory::createReader($inputFileType); 
    $objPHPExcel = $objReader->load($excelFile); 
    $objWorkSheet = $objPHPExcel->getActiveSheet(); 
    $highestRow = $objWorkSheet->getHighestRow(); 
    $hightestColumn = $objWorkSheet->getHightestColumn(); 
    $hightestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn); 

    echo '<table>'."\n" ; 
    for($row=2; $row<$highestRow ; ++$row){ 
    echo '<tr>'."\n" ; 
    for($col=0; $col < $highestColumnIndex ; ++$col){ 
    echo '<td>'.$objWorksheet->getCellByColumnAndRow($col,$row)->getValue().'</td>'."\n"; 
    } 
    echo '</tr>'."\n" ; 
    }  
    echo '</table>'."\n" ; 

但是,當這個代碼執行我沒有得到任何文件顯示。我也試圖把調試,以檢查它失敗的地方,我可以本地化錯誤getActiveSheet。 任何幫助,將不勝感激 感謝

+0

什麼是你看到的錯誤或異常圍繞'getActiveSheet'?什麼是$ inputFileType設置爲? $ objWorkSheet在那之後設置了什麼? – ernie

回答

0

嘗試進口PHPExcel這樣的:

spl_autoload_unregister(array('YiiBase', 'autoload')); 
Yii::import('application.vendors.PHPExcel', true); 
$this->objPHPExcel = new PHPExcel(); 
spl_autoload_register(array('YiiBase', 'autoload')); 
+0

謝謝,但事實證明,一旦糾正所有的工作,有很多錯別字讓房子失靈。 – friedFingers

+0

您的解決方案是創建新的Excel時,但嗨嘗試導入現有的Excel文件不導出。 – TotPeRo

0

這裏是我的顯示方式導入excel文件和工作原理:

spl_autoload_unregister(array('YiiBase','autoload'));   
    Yii::import("application.vendors.phpexcel.Classes.PHPExcel", true); 

    $inputFileType = PHPExcel_IOFactory::identify($path); 
    $objReader = PHPExcel_IOFactory::createReader($inputFileType); //Excel5); 
    $objPHPExcel = $objReader->load($path); 

    spl_autoload_register(array('YiiBase','autoload')); 

    foreach ($objPHPExcel->getWorksheetIterator() as $worksheet) { 
     foreach ($worksheet->getRowIterator() as $row) { 
       $rowIndex=$row->getRowIndex(); 
       $cellIterator = $row->getCellIterator(); 
       $cellIterator->setIterateOnlyExistingCells(false); // Loop all cells, even if it is not set 
       foreach ($cellIterator as $cellIndex=>$cell) { 
        if (!is_null($cell)) { 
         if($rowIndex >1 && $cellIndex<=55){ 
          $cellVal=$cell->getCalculatedValue(); 
           echo $cellVal; 
          } 
        } 
       } 
     } 
    }