phpExcel导入不同excel版本遇到的问题

来源:互联网 发布:软件界面的英文 编辑:程序博客网 时间:2024/06/16 10:00
  1. function getExcelData($filename) {
  2. $objReader = PHPExcel_IOFactory::createReader('Excel5');
  3. $objReader->setReadDataOnly(true);
  4. $objPHPExcel = $objReader->load($filename);
  5. $objWorksheet = $objPHPExcel->getActiveSheet();
  6. $highestRow = $objWorksheet->getHighestRow();
  7. $highestColumn = $objWorksheet->getHighestColumn();
  8. $highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn);
  9. if($highestRow==0) return;
  10. for($row = 1; $row <= $highestRow; $row++) {
  11. for($col = 0; $col < $highestColumnIndex; $col++) {
  12. $excelData[$row][] = (string)$objWorksheet->getCellByColumnAndRow($col, $row)->getValue();
  13. }
  14. }
  15.  
  16. return $excelData;
  17. }
结果发现有些excel文件上传读取失败,直接服务器500。检查看了下,原来php excel在不同的版本,实例化类是不一样的。
2003以前的excel读取实例化excel5类,2003以后需要实例化excel2007类,so,改改$objReader实例化的地方:
  1. $objReader = PHPExcel_IOFactory::createReader('Excel2007');
  2. if(!$objReader->canRead($filename)) {
  3. $objReader = PHPExcel_IOFactory::createReader('Excel5');
  4. if(!$objReader->canRead($filename)) return;
  5. }
0 0
原创粉丝点击