removeRow()不会在phpExcel中按预期删除行

时间:2017-11-06 06:24:25

标签: php loops foreach phpexcel

我尝试删除空白行[实际上不符合条件的行]。 这就是我试过的:

if(null !== ($this->f3->get('SESSION.userStatus')))
{
    $userStatus =  $this->f3->get('SESSION.userStatus');
}

$rowID = 5;
foreach ($results as $result) 
   {
     if($result['status'] == $userStatus)
     {
        $objPHPExcel->getActiveSheet()->setCellValue('A'.$rowID, $result['fullname']);
        $objPHPExcel->getActiveSheet()->setCellValue('B'.$rowID, $result['checkin_date']);
     }
   else
     {
        $objPHPExcel->getActiveSheet()->removeRow($rowID);
     }
     $rowID++;
   }

但我仍然得到空行:

       A   |  B   |  C  |  D
  1        |      |     |
  .
  .
  174      |      |     |
  175      |      |     |
  176      |      |     |
  177      |      |     |
  178 John |  2014| xyz | dfdf
  179 Jack |  2015| jkl | dfdf
  180      |      |     |
  .
  .

如何摆脱那些空行?行号并不重要,我需要做的就是摆脱那些空行。请帮帮我......谢谢。

1 个答案:

答案 0 :(得分:2)

你仍在增加rowID,这就是你有空行的原因

if(null !== ($this->f3->get('SESSION.userStatus')))
{
    $userStatus =  $this->f3->get('SESSION.userStatus');
}

$rowID = 5;
foreach ($results as $result) 
   {
     if($result['status'] == $userStatus)
     {
        $objPHPExcel->getActiveSheet()->setCellValue('A'.$rowID, $result['fullname']);
        $objPHPExcel->getActiveSheet()->setCellValue('B'.$rowID, $result['checkin_date']);
     }
   else
     {
        $objPHPExcel->getActiveSheet()->removeRow($rowID);
        continue;
     }
     $rowID++;
   }