2013-02-04 20 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; 
          } 
        } 
       } 
     } 
    }