Чтение указанного числа строк в огромном файле Excel - PullRequest
1 голос
/ 23 апреля 2019

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

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

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

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

1 Ответ

0 голосов
/ 23 апреля 2019

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...