Je souhaite supprimer toutes les lignes commençant par "//", à partir de la feuille Excel, avec PHPExcel. Mon code:Supprimer des lignes avec 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);
Mais, le code supprime pas toutes les lignes qui commencent par "//". Je pense que le problème est avec la fonction 'removeRow'.
Merci beaucoup d'avance.
Ma feuille Excel est comme ceci: // SDN_parameter_mapping \t \t \t // NRS: LOCAL: Profondeur \t \t \t // NRS: LOCAL: WC_Temp \t \t \t // NRS: LOCAL: WC_Sal \t \t \t // NRS: LOCAL: WC_SIGT \t \t \t // NRS: LOCAL: WC_O2 \t \t \t // NRS: LOCAL: WC_O2 (%) \t \t \t // NRS: LOCAL: WC_PO4 \t \t \t // NRS: LOCAL: WC_SiO4 \t \t \t // NRS: LOCAL: WC_NO2 \t \t \t // NRS: LOCAL: WC_NO3 \t \t \t // NRS: LOCAL: WC_NH4 \t \t \t // NRS: LOCAL: Chl_a \t \t \t // \t \t \t Donc, je veux supprimer les 14 premières lignes. –
tuxman
Ce n'est pas du tout un format Excel: je ne suis pas vraiment sûr de ce que c'est; mais vous feriez mieux d'utiliser fopen(), puis fgets() pour lire chaque ligne tour à tour. –
Fonctionne bien avec ce code: $ objPHPExcel-> getActiveSheet() -> removeRow (1,8); $ objPHPExcel-> getActiveSheet() -> removeRow (1,6); – tuxman