使用if-else条件使用PhpExcel导出选择性记录

时间:2017-11-06 05:09:56

标签: php 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++;
   }

仅导出已定义“status”值的记录。 但问题是标准不符合的行填充空格并仍然占用行。 输出如下所示:

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

如何修复它以获取从顶行开始的记录? 例如。

1 | John   |   2014 |   xyz  | dfdf
2 | Jack   |   2015 |   jkl  | dfds

1 个答案:

答案 0 :(得分:1)

之间 } $rowID++; 把这个 else { $objPHPExcel->getActiveSheet()->removeRow($rowID); }

这将删除您的空白行。 请注意,您出于某种原因从第5行开始,并且不测试最大行数。您的代码仍需要修复