цикл phpexcel только для выбранных столбцов - PullRequest
4 голосов
/ 22 июля 2011

В качестве входных данных у меня есть огромный лист, но мне не нужно читать все столбцы, мне нужно читать только выбранные столбцы, например B, H, I и J из 36 столбцов, и я буду очень благодарен, если какой-то кодТакже предусмотрено 4-5 строк.сейчас я использую следующий код!

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

1 Ответ

5 голосов
/ 02 сентября 2011

Это будет, вероятно, быстрее:

$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;
}
...