2011-12-21 15 views
8

Mam do czynienia z problemami z datami i czasem. Chcę, aby były czytane tak, jak pojawiają się w skoroszycie programu Excel.PHPExcel: Czytaj wszystkie wartości (data, czas, liczby) jako ciągi znaków

Tak, wierzę, jeśli dostanę wszystkie komórki arkusza z wykorzystaniem ToArray(), to należy po prostu zrobić coś (niektóre konwersji formatu), który mapuje wszystkie komórki jako ciągi, daty, godziny itp

OR może istnieć funkcja podobna do obciążenia, która ładuje wszystkie dane ze skoroszytu jako ciąg bez żadnych formatów ani innych złożonych rzeczy.

Odpowiedz

11

toArray() obsługuje następujące argumenty:

/** 
* @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 
*/ 

tak

toArray(NULL,TRUE,TRUE); 

zwróci wszystkie wartości komórki w arkuszu (obliczone i sformatowany) dokładnie tak, jak pojawiają się one w samym Excel.

Daty zostaną zwrócone jako (na przykład) 21-Dec-2011 07:30 zamiast 47239.318 (w zależności od maski formatu dla komórki). Inne komórki numeryczne można zwrócić jako 21 357 (w zależności od maskowania formatu dla tej komórki), więc jest to obosieczny miecz.

+4

Dzięki za odpowiedź na to pytanie. Wszystko działało dobrze. Ale myślę, że dokumentacja toArray(), rangeToArray() (i wszystkich innych, o ile ma to zastosowanie) powinna zawierać ostrzeżenie, aby nie używać '$ objReader-> setReadDataOnly (true) '. Zajęło mi trochę czasu, aby dowiedzieć się, dlaczego Twoja sugestia nie działa. Muszę zanurkować w kodzie PHPExel, aby to zrozumieć. – WebSoft

+0

To zastrzeżenie dotyczące setReadDataOnly (true) ma zastosowanie w całym PHPExcel, nie tylko w metodach takich jak toArray() ... dodając ostrożność wszędzie tam, gdzie ma to zastosowanie, należy dodać kilkaset linii do dokumentacji. Trwa jednak proces aktualizacji dokumentacji. –

+0

Dzięki za odpowiedź. Kolejne pytanie: Czy możliwe jest importowanie plików tekstowych z ogranicznikami tabulacji do obiektu PHPEXCEL? – WebSoft

Powiązane problemy