2011-07-22 4 views
4

私は入力として巨大なシートを持っていますが、すべての列を読む必要があります。選択された列は36列のうちB、H、I、いくつかのコードが4-5行も提供されている場合は完全に感謝します。私は次のコードを使用しているmommentで !選択した列だけをループするphpexcel

$objWorksheet = $objPHPExcel->setActiveSheetIndex('0') ; 
$i=0;$dum=false;$sum=0; 
foreach ($objWorksheet->getRowIterator() as $row) 
{ 
$cellIterator = $row->getCellIterator(); 

$cellIterator->setIterateOnlyExistingCells(false); 
if($dum) 
{             // iterated. 
foreach ($cellIterator as $cell) 
{ if($i==1||$i==7||$i==8||$i==9) 
    { 
      if($i==1) 
      { 
      $value[$i]=$cell->getValue(); 
      $pieces = explode("_", $value[$i]); 
      $asd=preg_split('#(?=\d)(?<=[a-z])#i',$pieces[0]); 
      // $value[$i]=$asd[1]; 

      } 
      if($i==7) 
      { 
      $value[$i]=PHPExcel_Style_NumberFormat::toFormattedString($cell->getCalculatedValue(), 'Y-m-d H:i:s'); 
      $A=date('Y-m-d', strtotime($value[$i])); 
      $value[7]=$A; 

      } 
      if($i==8) 
      { 
      $value[$i]=PHPExcel_Style_NumberFormat::toFormattedString($cell->getCalculatedValue(), 'Y-m-d H:i:s'); ; 
      $num2=$value[$i]; 
      } 
      if($i==9) 
      { 
      $value[$i]=$cell->getValue(); 

      } 
      echo $value[$i]; echo "|||||||"; 
        }$i++; 

}$i=0; echo "<br>"; 

答えて

5

これはおそらく速くなります。

$highestRow = $objWorksheet->getHighestRow(); 
for ($row = 0; $row <= $highestRow; ++$row) { 
    // Fetch the data of the columns you need 
    $col1 = $objWorksheet->getCellByColumnAndRow(1, $row)->getValue(); 
    $col7 = $objWorksheet->getCellByColumnAndRow(7, $row)->getValue(); 
    $col8 = $objWorksheet->getCellByColumnAndRow(8, $row)->getValue(); 
    $col9 = $objWorksheet->getCellByColumnAndRow(9, $row)->getValue(); 

    /* 
    ** INSERT HERE YOUR PHP CODE 
    */ 

    echo $col1."||||||".$col7."||||||".$col8."||||||".$col9; 
} 
関連する問題