Как определить конец файла с помощью библиотеки PHPExcel в цикле чанка?
Используя библиотеку PHPExcel, я пытаюсь перебрать около 1500 строк, каждая строка имеет около 25 столбцов.
Я использую этот код (взят изPHPExcel работает 256, 512, а также 1024 МБ оперативной памяти):
/** Create a new Reader of the type defined in $inputFileType **/
$objReader = PHPExcel_IOFactory::createReader($inputFileType);
/** Define how many rows we want to read for each "chunk" **/
$chunkSize = 20;
/** Create a new Instance of our Read Filter **/
$chunkFilter = new chunkReadFilter();
/** Tell the Reader that we want to use the Read Filter that we've Instantiated **/
$objReader->setReadFilter($chunkFilter);
/** Loop to read our worksheet in "chunk size" blocks **/
/** $startRow is set to 2 initially because we always read the headings in row #1 **/
for ($startRow = 2; $startRow <= 65536; $startRow += $chunkSize) {
/** Tell the Read Filter, the limits on which rows we want to read this iteration **/
$chunkFilter->setRows($startRow,$chunkSize);
/** Load only the rows that match our filter from $inputFileName to a PHPExcel Object **/
$objPHPExcel = $objReader->load($inputFileName);
// Do some processing here
// Free up some of the memory
$objPHPExcel->disconnectWorksheets();
unset($objPHPExcel);
}
Я хочу обработать как много строк данных. Я пытался использовать метод getHighestRow () из объекта Worksheet, но он просто продолжал возвращать A1
Я также попытался проверить, была ли следующая найденная строка пустой, написав эту маленькую функцию:
function _emptyRow($row) {
$empty=true;
foreach($row as $r) {
if ($r!='') {
$empty = false;
}
}
return $empty;
}
Так что если _emptyRow () я будуbreak
вне цикла . Это не сработало для меня.
Кто-нибудь может предложить способ извлечь только все записи, которые имеют данные? Когда я запускаю это, даже если только около 1500 строк имеют данные, он достигает примерно 23000 до истечения времени ожидания (с set_time_limit (240));