无法使用PHPExcel读取旧的file.xls excel文件

时间:2015-06-22 17:26:02

标签: php phpexcel

我的代码与file.xlsx完美配合,但我无法使用旧file.xls。我尝试了所有找到的代码,没有任何作用......我尝试将Excel2007的版本更改为2003,2004,但没有...不知道还有什么可以尝试。
这是我当前的代码(使用file.xlsx,但我也需要使用file.xls)。

 <?php 
 function load_table(){
    require_once('Classes/PHPExcel.php');

    $objReader = PHPExcel_IOFactory::createReader('Excel2007');
    $objReader->setReadDataOnly(false);

    $objPHPExcel = $objReader->load("SampleData.xlsx");
    $objWorksheet = $objPHPExcel->getActiveSheet();
    $highestRow = $objWorksheet->getHighestRow(); // e.g. 10
    $highestColumn = $objWorksheet->getHighestColumn(); // e.g 'F'

    $highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn); // e.g. 5

    echo '<table class="table">' . "\n";
    for ($row = 1; $row <= $highestRow; ++$row) {
      echo '<tr>' . "\n";

      for ($col = 0; $col <= $highestColumnIndex; ++$col) {
        echo '<td>';
        $first =   $objWorksheet->getCellByColumnAndRow($col, $row)->getValue();
        if($first[0] == '='){

            echo $objWorksheet->getCellByColumnAndRow($col, $row)->getCalculatedValue();
        }
        else
            echo $first;

        echo '</td>' . "\n";

      }

      echo '</tr>' . "\n";
    }
    echo '</table>' . "\n"; 
}

?>

1 个答案:

答案 0 :(得分:1)

xls文件的Reader是Excel5 Reader。

但你真的应该简单地使用IOFactory的load()方法,让PHPExcel为自己识别文件类型并选择正确的阅读器,因为有很多文件(特别是那些从互联网上下载的文件) .xls扩展名不是真正的BIFF格式文件.... PHPExcel可以在使用load()方法时正确识别和加载这些文件,因为它可以为自己选择正确的Reader。

但是当你自己指定一个诸如Excel2007Excel5之类的阅读器时,你就告诉PHPExcel它必须使用哪个阅读器,即使它可能不是实际文件的正确阅读器

Document link,按名称列出所有不同的读者