我想阅读一些巨大的Excel文件,以减少阅读时间。 我写了下面的代码。
$xls = new Spreadsheet_Excel_Reader($path);
$dd=array(0);
for($row=2;$row<=10;$row++){
$val=$xls->val($row,$field);
}
每次读取文件都需要花费大量时间,因为文件很大。每次也会重新加载该文件。
如何只读取文件的必需行以节省时间?
答案 0 :(得分:0)
每次执行PHP脚本时,都会重新加载该文件,这仅仅是因为它不保留先前的状态。当您说一个大文件时,我们在谈论多少记录/字节?
要加快此类文件的读取速度,可以将其放在比SSD快得多的RAM磁盘(如果使用Linux)上。或者,将其读取并存储与固定记录长度等效的CSV。固定的记录长度使您可以根据需要跳转到段,并轻松检索记录数。
因此,如果您的记录长度变为90个字节/字符,并且您希望记录100至109个,则可以打开文件进行读取,然后将其定位到9000(90 * 100)的位置,然后抓取接下来的900个字符。