Ich versuche, einige Excel-Dateien mit phpexcel zu lesen, was soweit funktioniert. phpexcel ist allerdings etwas zu schlau und entfernt führende Nullen aus meinen Zellen. Ich denke, ich muss es sagen, um die Zelle als Textzeichenfolge zu behandeln, nicht als allgemein oder Nummer. aber ich habe versagt. Ich habe sogar Threads auf Stackoverflow gefunden, aber die vorgeschlagenen Lösungen würden einfach nicht funktionieren.Zellenformate in phpexcel
unten ist ein Ausschnitt der Dinge, an denen ich arbeite.
foreach(@$objWorksheet->getRowIterator() as $row){
$cellIterator = $row->getCellIterator();
$cellIterator->setIterateOnlyExistingCells(false);
foreach($cellIterator as $cell){
#$objWorksheet->getStyle($cell->getCoordinate())->getNumberFormat()->setFormatCode('@');
$cells[] = $cell->getValue();
}
}
irgendeine Idee? Ich möchte mich nicht darauf beschränken, nur numerische Inhalte zu lesen, da ich keine Kontrolle darüber habe, was die Benutzer hochladen. alles so zu behandeln, als wäre die Saite perfekt.
/peder
Dank, alle guten Sachen. aber - wendete dies an und versuchte, eine CSV-Datei zu parsen, aber es scheint, als wären alle meine Zellen als "allgemein" formatiert. Datei sieht so aus: http://dl.dropbox.com/u/252696/csv.csv ist dies eine Einschränkung des csv-Formats, und wenn ja - wäre es nicht besser, wenn phpexcel nur den Inhalt der Zellen zurückgibt ? – fjallstrom
Wenn PHPExcel einfach die "Zeichenfolgen" zurückgegeben hat, hätte es seine Fähigkeit zur Verarbeitung von Daten aus Excel-Arbeitsblättern verloren.Wenn Sie nur versuchen, eine CSV-Datei in ein Array zu lesen, ist die PHP-integrierte csv-Verarbeitungsfunktion die beste Option, z. B. fgetcsv() –
Wenn Sie möchten, dass PHPExcel Eingaben aus der CSV-Datei als Zeichenfolgen und nicht als Zahlen behandelt Sie können einen einfachen "Lese-Filter" schreiben, der sicherstellt, dass alle Eingaben aus der Datei als Strings behandelt werden. –