2015-09-28 108 views
0

我想只读取所有行的列1,3,6和7。我试过这样但它不起作用。获取Excel工作表的特定行

 $objPHPExcel = PHPExcel_IOFactory::load($file); 

     $sheet = $objPHPExcel->getSheetByName('Prefixes'); 
     $i =2; 
     foreach($sheet->getRowIterator() as $row){ 

      $dest = $sheet->getCellByColumnAndRow(1, $i)->getValue(); 
      $code = $sheet->getCellByColumnAndRow(3, $i)->getValue(); 

      $price = trim($sheet->getCellByColumnAndRow(6,$i)->getCalculatedValue()); 
      $date = date('Y-m-d',PHPExcel_Shared_Date::ExcelToPHP($sheet->getCellByColumnAndRow(7,$i)->getCalculatedValue())); 

      $rateSheet[] = array($dest,$code,$price,$date);   
      $i++; 

     } 
+2

你能解释一下你的“不工作”是什么意思?它是否显示任何错误消息?它会返回错误的数据吗?它是否会将您的服务器着火?为什么你使用rowIterator,然后直接寻址单个单元格? –

+0

计数可能从0开始,记住 – CDrosos

+0

它就像一个无限循环,我的屋顶着火了:P。迭代每行并获取每行的值是不正确的?那我该怎么做呢? –

回答

0

如果它可能会帮助别人,这是正确的做法:

$rateSheet=array(); 
    $objPHPExcel = PHPExcel_IOFactory::load($file); 
    if($file=="519340.xls"){ 
     echo "</br>OK</br>"; 
     $sheet = $objPHPExcel->getSheetByName('Prefixes'); 
     $i =2; 
     $highestRow=$objPHPExcel->setActiveSheetIndex(1)->getHighestRow(); 
     echo $highestRow; 
     for($j=0;$j<$highestRow;$j++){ 
      $dest = $sheet->getCellByColumnAndRow(0, $i)->getValue(); 
      $code = $sheet->getCellByColumnAndRow(2, $i)->getValue();   
      $price = trim($sheet->getCellByColumnAndRow(5,$i)->getCalculatedValue()); 
      $date = date('Y-m-d',PHPExcel_Shared_Date::ExcelToPHP($sheet->getCellByColumnAndRow(6,$i)->getCalculatedValue()));   
      $rateSheet[] = array($dest,$code,$price,$date);    
      $i++;    
     } 
     return $rateSheet; 
相关问题