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

摘要:php导入excel一般选用php excel,php excel下载地址:http://phpexcel.codeplex.com

php导入excel一般选用php excel,php excel下载地址:http://phpexcel.codeplex.com

实际调用:

function getExcelData($filename) {
    $objReader = PHPExcel_IOFactory::createReader('Excel5');
    $objReader->setReadDataOnly(true);
    $objPHPExcel   = $objReader->load($filename);
    $objWorksheet  = $objPHPExcel->getActiveSheet();
    $highestRow    = $objWorksheet->getHighestRow();
    $highestColumn = $objWorksheet->getHighestColumn();
    $highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn);
    if($highestRow==0) return;
    
    for($row = 1; $row <= $highestRow; $row++) {
        for($col = 0; $col < $highestColumnIndex; $col++) {
            $excelData[$row][] = (string)$objWorksheet->getCellByColumnAndRow($col, $row)->getValue();
        }
    }

    return $excelData;
}

结果发现有些excel文件上传读取失败,直接服务器500。检查看了下,原来php excel在不同的版本,实例化类是不一样的。
2003以前的excel读取实例化excel5类,2003以后需要实例化excel2007类,so,改改$objReader实例化的地方:

$objReader = PHPExcel_IOFactory::createReader('Excel2007');
if(!$objReader->canRead($filename)) {
    $objReader = PHPExcel_IOFactory::createReader('Excel5');
    if(!$objReader->canRead($filename)) return;
}

小记,以防他日忘记。

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/98483.html

(0)
上一篇 2021年8月21日
下一篇 2021年8月21日

相关推荐

发表回复

登录后才能评论