sto provando a leggere alcuni file excel con phpexcel, che funziona bene finora. phpexcel è un po 'troppo intelligente e rimuove gli zeri iniziali dalle mie celle. Immagino di doverlo dire per trattare la cella come una stringa di testo, non come generale o numero. ma ho fallito. Ho persino trovato discussioni su StackOverflow su questo argomento ma le soluzioni suggerite semplicemente non funzionerebbero.formati di celle in phpexcel
di seguito è uno snippet delle cose su cui sto lavorando.
foreach(@$objWorksheet->getRowIterator() as $row){
$cellIterator = $row->getCellIterator();
$cellIterator->setIterateOnlyExistingCells(false);
foreach($cellIterator as $cell){
#$objWorksheet->getStyle($cell->getCoordinate())->getNumberFormat()->setFormatCode('@');
$cells[] = $cell->getValue();
}
}
qualche idea? Non voglio limitarmi a leggere solo contenuti numerici, in quanto non ho alcun controllo su ciò che gli utenti caricheranno. trattare tutto come se le corde fossero perfette.
/Peder
grazie, tutta roba buona. ma - applicato questo e cercato di analizzare un file csv, ma sembra che tutte le mie celle siano formattate come "generali". il file assomiglia a questo: http://dl.dropbox.com/u/252696/csv.csv è una limitazione del formato csv, e se è così - non sarebbe meglio se phpexcel restituisse il contenuto delle celle ? – fjallstrom
Se PHPExcel restituisse semplicemente le "stringhe", avrebbe perso tutta la sua capacità di elaborare i dati dai fogli di lavoro Excel.Se stai solo provando a leggere un file CSV in un array, la tua migliore opzione sono le funzioni di gestione csv incorporate di PHP, come fgetcsv() –
Se vuoi che PHPExcel tratti l'input dal file CSV come stringhe piuttosto che come numeri, allora puoi scrivere un semplice "filtro di lettura" che garantisce che tutti gli input del file vengano trattati come stringhe. –