Tôi đang cố gắng đọc một số tệp excel với phpexcel, hoạt động tốt cho đến nay. phpexcel là một chút quá thông minh mặc dù, và loại bỏ số không đứng đầu từ các tế bào của tôi. tôi đoán tôi cần phải nói với nó để điều trị các tế bào như một chuỗi văn bản, không phải là chung hoặc số. nhưng tôi đã thất bại. tôi thậm chí còn tìm thấy các chủ đề trên stackoverflow về điều này, nhưng các giải pháp được đề xuất chỉ đơn giản là sẽ không hoạt động.định dạng ô trong phpexcel
bên dưới là một đoạn nội dung tôi đang làm việc.
foreach(@$objWorksheet->getRowIterator() as $row){
$cellIterator = $row->getCellIterator();
$cellIterator->setIterateOnlyExistingCells(false);
foreach($cellIterator as $cell){
#$objWorksheet->getStyle($cell->getCoordinate())->getNumberFormat()->setFormatCode('@');
$cells[] = $cell->getValue();
}
}
bất kỳ ý tưởng nào? tôi không muốn giới hạn bản thân mình để chỉ đọc nội dung số, vì tôi không có quyền kiểm soát những gì người dùng sẽ tải lên. xử lý mọi thứ như dây sẽ là hoàn hảo.
/Peder
cảm ơn, tất cả những thứ tốt. nhưng - áp dụng điều này và cố gắng phân tích cú pháp tệp csv, nhưng dường như tất cả các ô của tôi được định dạng là "chung". tập tin trông như thế này: http://dl.dropbox.com/u/252696/csv.csv đây là một hạn chế của định dạng csv, và nếu vậy - sẽ không tốt hơn nếu phpexcel vừa trả lại nội dung của các ô ? – fjallstrom
Nếu PHPExcel đơn giản trả lại "chuỗi", nó sẽ mất tất cả khả năng xử lý dữ liệu từ bảng tính Excel.Nếu bạn chỉ đang cố đọc một tệp CSV thành một mảng, tùy chọn tốt nhất của bạn là các hàm xử lý csv được tích hợp sẵn của PHP, như fgetcsv() –
Nếu bạn muốn PHPExcel xử lý đầu vào từ tệp CSV dưới dạng chuỗi thay vì số, thì bạn có thể viết một "bộ lọc đọc" đơn giản để đảm bảo tất cả đầu vào từ tệp được coi là chuỗi. –