2011-12-21 7 views
8

Tôi đang đối mặt với các vấn đề về ngày giờ. Tôi muốn chúng được đọc giống như chúng xuất hiện trong sổ làm việc excel.PHPExcel: Đọc tất cả các giá trị (ngày, giờ, số) dưới dạng các chuỗi

Vì vậy, tôi tin rằng nếu tôi nhận được tất cả các tế bào của tấm bằng toArray(), sau đó tôi chỉ đơn giản là nên làm một cái gì đó (một số chuyển đổi định dạng) sẽ lập bản đồ tất cả các ô như chuỗi, ngày tháng, thời gian, vv

HOẶC có thể có chức năng như tải, tải tất cả dữ liệu trong sổ làm việc dưới dạng chuỗi mà không có bất kỳ công cụ định dạng hoặc phức tạp nào khác.

Trả lời

11

toArray() hỗ trợ các đối số sau đây:

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

nên

toArray(NULL,TRUE,TRUE); 

sẽ trả lại tất cả các giá trị cell trong worksheet (tính toán và định dạng) chính xác như chúng xuất hiện trong bản thân Excel.

Vì vậy, ngày sẽ được trả về (ví dụ) 21 tháng 12 năm 2011 07:30 thay vì 47239.318 (tùy thuộc vào mặt nạ định dạng cho ô). Các ô số khác có thể được trả về là 21,357.00 (tùy thuộc vào định dạng mặt nạ cho ô đó) vì vậy nó là một thanh kiếm hai lưỡi.

+4

Cảm ơn bạn đã trả lời câu hỏi này. Nó hoạt động tốt. Nhưng tôi nghĩ rằng tài liệu của toArray(), rangeToArray() (và cho tất cả những người khác nếu có) nên bao gồm một cảnh báo để không sử dụng '$ objReader-> setReadDataOnly (true) '. Tôi mất một lúc để tìm ra, tại sao đề xuất của bạn không hoạt động. Tôi phải đi sâu vào mã PHPExel để tìm ra điều này. – WebSoft

+0

Điều đó chứng minh về setReadDataOnly (true) áp dụng trong PHPExcel, không chỉ cho các phương thức như toArray() ... thêm một sự thận trọng ở mọi nơi mà nó áp dụng sẽ thêm vài trăm dòng vào tài liệu. Tuy nhiên, quá trình cập nhật tài liệu đang diễn ra. –

+0

Cảm ơn bạn đã trả lời. Một câu hỏi khác: Có thể nhập tệp văn bản được phân định tab vào đối tượng PHPEXCEL không? – WebSoft