我想要使用PHPExcel從Excel表格中刪除以「//」開頭的所有行。 我的代碼:使用PHPExcel刪除行
require '../Classes/PHPExcel.php';
require_once '../Classes/PHPExcel/IOFactory.php';
error_reporting(E_ALL & ~E_STRICT & ~E_NOTICE);
$path = "del_head.xls";
$objPHPExcel = PHPExcel_IOFactory::load($path);
$objWorksheet = $objPHPExcel->getActiveSheet();
$highestRow = $objWorksheet->getHighestRow();
$highestColumn = $objWorksheet->getHighestColumn();
$highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn);
for($row=1; $row < $highestRow; ++$row){
$value = $objPHPExcel->getActiveSheet()->getCell('A'.$row)->getValue();
if (substr($value,0,2) == "//") {
$objPHPExcel->getActiveSheet()->removeRow($row, $row);
}
}
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, "Excel2007");
$objWriter->save($path);
但是,這些代碼並沒有刪除以「//」開頭的所有行。 我認爲問題出在功能'removeRow'上。
非常感謝您提前。
我的Excel工作表是這樣的:// SDN_parameter_mapping \t \t \t // SDN:LOCAL:深度 \t \t \t // SDN:LOCAL:WC_Temp \t \t \t // SDN:LOCAL:WC_Sal \t \t \t // SDN:LOCAL:WC_SIGT \t \t \t // SDN:LOCAL:WC_O2 \t \t \t // SDN:LOCAL:WC_O2 (%) \t \t \t // SDN:LOCAL:WC_PO4 \t \t \t // SDN:LOCAL:WC_SiO4 \t \t \t // SDN:LOCAL:WC_NO2 \t \t \t // SDN:LOCAL:WC_NO3 \t \t \t // SDN:LOCAL:WC_NH4 \t \t \t // SDN:LOCAL:Chl_a \t \t \t // \t \t \t 所以,我想刪除第14行。 –
tuxman
這完全不是Excel格式:我不完全確定它是什麼;但你最好使用fopen(),然後fgets()依次讀取每一行 –
使用此代碼可以很好地工作:$ objPHPExcel-> getActiveSheet() - > removeRow(1,8); $ objPHPExcel-> getActiveSheet() - > removeRow(1,6); – tuxman