2011-12-21 11 views
8

Ho problemi con le date e l'ora. Voglio che vengano letti proprio come appaiono nella cartella di lavoro di Excel.PHPExcel: legge tutti i valori (data, ora, numeri) come stringhe

Quindi, credo che se ho tutte le celle del foglio utilizzando toArray(), allora dovrei semplicemente fare qualcosa (un po 'di conversione di formato) che mappa tutte le cellule come stringhe, date, orari ecc

O potrebbe esserci una funzione come il caricamento, che carica tutti i dati nella cartella di lavoro come stringa senza alcuna formattazione o altre cose complesse.

risposta

11

toArray() supporta i seguenti argomenti:

/** 
* @param mixed $nullValue   Value returned in the array entry if a cell doesn't 
*          exist 
* @param boolean $calculateFormulas Should formulas be calculated? 
* @param boolean $formatData   Should formatting be applied to cell values? 
* @param boolean $returnCellRef  False - Return a simple array of rows and 
*          columns indexed by number counting from zero 
*          True - Return rows and columns indexed by their 
*          actual row and column IDs 
*/ 

così

toArray(NULL,TRUE,TRUE); 

torneranno tutti i valori delle celle nel foglio di lavoro (calcolato e formattato) esattamente come appaiono in Excel per sé.

Quindi le date verranno restituite come (ad esempio) 21-dic-2011 07:30 anziché 47239.318 (in base alla maschera di formato della cella). Altre celle numeriche potrebbero essere restituite come 21.357,00 (a seconda del mascheramento del formato per quella cella) quindi è una spada a doppio taglio.

+4

Grazie per aver risposto a questa domanda. Ha funzionato bene. Ma penso che la documentazione di toArray(), rangeToArray() (e di tutti gli altri dove applicabile) dovrebbe includere un avvertimento per non usare '$ objReader-> setReadDataOnly (true) '. Mi ci è voluto un po 'per capire, perché il tuo suggerimento non funziona. Devo immergermi nel codice PHPExel per capirlo. – WebSoft

+0

Questa clausola relativa a setReadDataOnly (true) si applica a PHPExcel, non solo a metodi come toArray() ... aggiungendo un'attenzione ovunque si applichi aggiungere centinaia di righe alla documentazione. Tuttavia, il processo di aggiornamento della documentazione è in corso. –

+0

Grazie per la risposta. Un'altra domanda: è possibile importare file di testo delimitati da tabulazione in oggetti PHPEXCEL? – WebSoft

Problemi correlati