【发布时间】:2014-07-25 14:00:39
【问题描述】:
我目前正在使用 PHPExcel 使用读取过滤器以块的形式读取 excel 文件,因为电子表格将来有可能变得很大,我需要确保有足够的内存来处理它,无论大小。
作为逻辑的一部分,我想检索工作表中的行数,我知道可以按如下方式完成:
$file = 'path/to/spreadsheet.xslx';
$objReader = PHPExcel_IOFactory::createReader('Excel2007');
$objPHPExcel = $objReader->load($file);
return $objPHPExcel->getActiveSheet()->getHighestRow();
我的问题是,如果文件太大,这样做会导致 PHP 内存不足吗?
即就像我对大文件使用以下内容一样:
$objPHPExcel->getActiveSheet()->tooArray();
如果是这样,有没有办法在文件变大时检索最高行而不会导致内存问题?
我已经在我的本地机器上测试了一个 3MB 的文件,它似乎可以应付得很好,除了文件越大返回最高行的时间越长。
【问题讨论】:
-
不确定是否有替代方法,也许检查 PHPExcel 库中的迭代器并尝试使其更适合您的情况?不确定它是否会改变很多,无论如何这是一个繁重的阐述:)
-
酷,会的,感谢您的回复:)。由于这是一个命令行工具,我最终可能只是求助于手动指定行数作为参数......