PHPExcel - 读取最后一行

use*_*889 5 phpexcel

我有点困惑PHPExcel的行为与我有一些文件.这些文件包含约.3000行数据,但根据PHPExcel,使用的最后一行是65535.我尝试从文件中删除几行并将它们粘贴到一个新文件中,但无济于事.无论是Excel5还是Excel2007格式,总是相同的结果.

有什么想法在这里找到错误?

码:

    $cr=$xls->getActiveSheet()->getHighestRow();
    $cn=PHPExcel_Cell::columnIndexFromString($xls->getActiveSheet()->getHighestColum??n()); 
    for ($z=2; $z<=$cr; $z++) { 
        $class=($z%2)?"odd":"even"; 
?> 
    <tr class="<?php echo $class; ?>"> 
    <?php for ($s=0; $s<$cn; $s++) { 
        $tmp=$xls->getActiveSheet()->getCellByColumnAndRow($s,$z)->getValue();?> 
        <td><?php echo $tmp; ?></td> 
    <?php } ?> </tr> 
<?php } ?>
Run Code Online (Sandbox Code Playgroud)

Mar*_*ker 6

所需要的只是一个空白单元格,最后一个col/row可能比你预期的要高很多.即使是打印布局或样式也可能伪造存储的最高值.在MS Excel中打开文件并按Ctrl-End,它将带您到Excel识别的最后一个单元格.

除了getHighestRow()和getHighestColum()之外,还有一个(较慢的)getHighestDataRow()和getHighestDataColumn()方法,用于标识实际包含单元格数据的最高行和列.


小智 -1

这没有错误。“空”电子表格仍然包含大量空单元格。Excel 通常有 65536 行和 256 列。

  • 但是所有文件都应该显示这种行为 - 我还有其他几个文件在我期望的位置结束 - 最后一行是输入数据的。 (2认同)