Próbuję odczytać niektóre pliki Excela za pomocą phpexcel, który działa do tej pory. phpexcel jest nieco zbyt sprytny i usuwa początkowe zera z moich komórek. Chyba muszę powiedzieć, aby traktować komórkę jako ciąg tekstowy, a nie jako ogólny lub numer. ale nie udało mi się. Nawet znalazłem wątki na temat stackoverflow, ale sugerowane rozwiązania po prostu nie działały.formaty komórek w phpexcel
Poniżej znajduje się urywek rzeczy, nad którymi pracuję.
foreach(@$objWorksheet->getRowIterator() as $row){
$cellIterator = $row->getCellIterator();
$cellIterator->setIterateOnlyExistingCells(false);
foreach($cellIterator as $cell){
#$objWorksheet->getStyle($cell->getCoordinate())->getNumberFormat()->setFormatCode('@');
$cells[] = $cell->getValue();
}
}
jakiś pomysł? Nie chcę się ograniczać do czytania tylko treści numerycznych, ponieważ nie mam żadnej kontroli nad tym, co użytkownicy będą przesyłać. Traktowanie wszystkiego jak struny byłoby idealne.
/peder
dzięki, wszystkie dobre rzeczy. ale - zastosował to i próbował przetworzyć plik CSV, ale wygląda na to, że wszystkie moje komórki są sformatowane jako "ogólne". plik wygląda następująco: http://dl.dropbox.com/u/252696/csv.csv jest to ograniczenie formatu csv, a jeśli tak - czy nie byłoby lepiej, gdyby phpexcel właśnie zwrócił zawartość komórek ? – fjallstrom
Jeśli PHPExcel po prostu zwróci "ciągi znaków", straciłby całą zdolność przetwarzania danych z arkuszy programu Excel.Jeśli próbujesz po prostu odczytać plik CSV do tablicy, najlepszą opcją jest wbudowane funkcje obsługi CSV w PHP, takie jak fgetcsv() –
Jeśli chcesz, aby PHPExcel traktował dane wejściowe z pliku CSV jako ciągi zamiast liczby, to możesz napisać prosty "filtr odczytu", który zapewnia, że wszystkie dane wejściowe z pliku są traktowane jako ciągi. –