删除行 phpexcel

Delete row phpexcel

我想加载我的 file.xls 并检查我的元素是否包含字符 ^;那么,我想删除它。

这里是我的代码:

$objPHPExcel = PHPExcel_IOFactory::load("trainbayes.xlsx");
foreach ($objPHPExcel->getWorksheetIterator() as $worksheet){
$column = 'C';
$lastRow = $worksheet->getHighestRow();
  for ($row = 2; $row <= $lastRow; $row++) {    
      $cell = $worksheet->getCell($column.$row);
      if (preg_match("/([\^])/",$cell)){
          $objPHPExcel->getActiveSheet()->removeRow($row,$row);
      }
   }
} 

但是没有用。你能帮助我吗?谢谢:)

$cell = $worksheet->getCell($column.$row);

Returns一个Cellobject并赋值给$cell;然后,您将该单元格对象视为 preg_match() 调用中的字符串。

您当然应该检查单元格

$cell = $worksheet->getCell($column.$row)->getValue();

此外,

$objPHPExcel->getActiveSheet()->removeRow($row,$row);

你真的想通过 $row 两次吗?第二个参数是要删除的行数,第一个参数是开始删除的行号,所以如果你传递 $row5,那么 PHPExcel 将删除 5 行,从第 5 行开始。

你当然是说

$objPHPExcel->getActiveSheet()->removeRow($row, 1);

或者干脆

$objPHPExcel->getActiveSheet()->removeRow($row);