Löschen von Zeilen mit PHPExcel
Möchte ich löschen Sie alle Zeilen, die beginnen mit "//", vom Excel-sheet, mit PHPExcel.
Mein code:
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);
Aber den code nicht löschen Sie alle Zeilen, die beginnen mit "//".
Ich denke, das problem ist mit der Funktion 'removeRow'.
Vielen Dank im Voraus.
InformationsquelleAutor tuxman | 2013-07-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es ein offensichtliches problem mit Ihrem Aufruf
removeRow()
: Das erste argument ist die Start-Zeile, die zweite Zahl ist die Anzahl von Zeilen zu entfernen; also, wenn Sie einen //in Zeile 5, dann sagen Sie PHPExcel zu entfernen 5 Zeilen ab Zeile 5 (also die Zeilen 5 bis 9).Du bist auch das Lesen einer Datei mit einer .xls-Erweiterung (unter der Annahme, dass es ein BIFF-Datei aus der Erweiterung), aber die Rettung mit der gleichen .xls-Dateinamen wie ein OfficeOpenXML-Datei (normalerweise eine .xlsx-Datei).
So, in welchem format eigentlich ist deine Datei? Was macht ein Aufruf der IOFactory das identifizieren () - Methode erkennen Sie, wie? Wenn es tatsächlich einen Komma - oder tab-separated value-Datei (wahrscheinlich eine führende
//
), dann wären Sie besser mit Hilfe von PHP -fgetcsv()
undfputcsv()
Funktionen, um es zu verarbeiten, entfernen Sie diese Zeilen.Das ist keine Excel-format an alle: ich bin mir nicht genau sicher, was es ist; aber Sie wären besser dran, einfach mit fopen(), dann fgets() zum Lesen jeder Zeile wiederum
Funktionieren mit diesem code:$objPHPExcel->getActiveSheet()->removeRow(1,8); $objPHPExcel->getActiveSheet()->removeRow(1,6);
Hi, Wenn ich removeRow es funktioniert für mich, aber fügt leere Zeilen endlich, wie wenn ich 10 Zeilen von Zeile 21 - 30 , löscht es aber, wenn ich in pdf umwandeln, es gibt mir die PDF-Datei mit zusätzlichen 10 Zeilen unten
InformationsquelleAutor Mark Baker
Ersetzen Sie diese Zeile
mit
InformationsquelleAutor Shaimaa
Bitte überprüfen Sie, ob der zugewiesene Wert auf der Linie:
Ich habe getestet dieses code und der Wert ist immer 1
InformationsquelleAutor Jesús Gaztelu
Versuchen, diesen code, Dessen arbeitete mich
InformationsquelleAutor Muhiddin Jumaniyazov