可以';t使用PHPExcel读取旧的file.xls excel文件


Can't read old file.xls excel file with PHPExcel

我的代码可以完美地与file.xlsx配合使用,但我无法使它与旧的file.xls配合使用。我尝试了我找到的每一个代码,但都不起作用。。。我尝试将Excel2007的版本更改为20032004,但没有。。。不知道还能尝试什么
这是我当前的代码(使用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"; 
}
?>
xls文件的阅读器是Excel5阅读器。

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

但是,当您自己指定一个读卡器(如Excel2007Excel5)时,您会告诉PHPExcel它必须使用哪个读卡器,即使它可能不是实际文件的正确读卡器。

文档链接,按名称列出所有不同的读卡器