Чтение указанного числа строк в огромном файле Excel

Я хочу прочитать огромный файл Excel в патчах, чтобы сократить время чтения. Я написал код ниже.

$xls = new Spreadsheet_Excel_Reader($path);
$dd=array(0);
for($row=2;$row<=10;$row++){
$val=$xls->val($row,$field);
}

Это занимает много времени каждый раз, когда файл читается, потому что файл огромен. Файл также перезагружается каждый раз.

Как я могу прочитать только необходимые строки файла, чтобы сэкономить время??

1 ответ

Файл будет перезагружаться каждый раз, когда выполняется скрипт PHP, просто из-за того, что он не сохраняет прежнее состояние. Когда вы говорите большой файл, о скольких записях / байтах мы говорим?

Чтобы ускорить чтение такого файла, вы можете поместить его на RAM-диск (если используете Linux), который намного быстрее, чем SSD. Или прочитайте его и сохраните эквивалент CSV с фиксированной длиной записи. Фиксированная длина записи позволит вам переходить к сегментам по вашему желанию и легко получать количество записей.

Таким образом, если длина вашей записи стала 90 байтов / символов, и вы хотите, чтобы записи были от 100 до 109, вы должны открыть файл для чтения, перейти к позиции 9000 (90 * 100) и захватить следующие 900 символов.

Другие вопросы по тегам