我想加载我的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);
}
}
}
但它没有用。你能帮助我吗?谢谢:))
答案 0 :(得分:2)
$cell = $worksheet->getCell($column.$row);
返回一个Cell 对象并将其分配给$cell
;然后,您将该单元格对象视为preg_match()
调用中的字符串。
当然,您应该检查单元格的值
$cell = $worksheet->getCell($column.$row)->getValue();
此外,
$objPHPExcel->getActiveSheet()->removeRow($row,$row);
你真的想要两次通过$row
吗?第二个参数是要删除的行数,第一个参数是要开始删除的行号,因此如果传递$row
是5
,则PHPExcel将从第5行开始删除5行。 / p>
当然你的意思是
$objPHPExcel->getActiveSheet()->removeRow($row, 1);
或只是
$objPHPExcel->getActiveSheet()->removeRow($row);
答案 1 :(得分:0)
如果您只搜索字符串^
,请使用strpos
。 strpos
将比regex
if (strpos($str, '^')) {
$objPHPExcel->getActiveSheet()->removeRow($row,$row);
}