У меня есть большие рабочие листы Excel, которые я хочу читать в MySQL с помощью PHPExcel.
Я использую недавний патч , который позволяет читать в рабочих таблицах без открытие всего файла. Таким образом, я могу читать по одному листу за раз.
Однако размер одного файла Excel составляет 27 МБ. Я могу успешно прочитать первый лист, поскольку он маленький, но второй лист настолько велик, что задание cron, которое запустило процесс в 22:00, не было завершено в 8:00, есть ли способ увеличить производительность toArray ()
?
2011-01-12 11:40:51: ----------start
2011-01-12 11:40:59: reading chunk starting at row 2
2011-01-12 11:41:07: reading chunk starting at row 22
2011-01-12 11:41:14: reading chunk starting at row 42
2011-01-12 11:41:22: reading chunk starting at row 62
2011-01-12 11:41:29: reading chunk starting at row 82
2011-01-12 11:41:37: reading chunk starting at row 102
2011-01-12 11:41:45: reading chunk starting at row 122
2011-01-12 11:41:52: reading chunk starting at row 142
2011-01-12 11:42:00: reading chunk starting at row 162
2011-01-12 11:42:07: reading chunk starting at row 182
2011-01-12 11:42:15: reading chunk starting at row 202
2011-01-12 11:42:22: reading chunk starting at row 222
2011-01-12 11:42:22: end
Кажется, это работает адекватно, например, по крайней мере, для файла 3 МБ :
for ($startRow = 2; $startRow <= 240; $startRow += $chunkSize) {
echo 'Loading WorkSheet using configurable filter for headings row 1 and for rows ', $startRow, ' to ', ($startRow + $chunkSize - 1), '
';
$chunkFilter->setRows($startRow, $chunkSize);
$objPHPExcel = $objReader->load('data/' . $file_name);
debug_log('reading chunk starting at row ' . $startRow);
foreach ($objPHPExcel->getActiveSheet()->getRowIterator() as $row) {
$cellIterator = $row->getCellIterator();
$cellIterator->setIterateOnlyExistingCells(false);
echo '';
foreach ($cellIterator as $cell) {
if (!is_null($cell)) {
//$value = $cell->getCalculatedValue();
$rawValue = $cell->getValue();
debug_log($rawValue);
}
}
}
}
27
задан pnuts 4 September 2015 в 02:21
поделиться
0 ответов
Другие вопросы по тегам: Похожие вопросы: