Прежде всего, я знаю, что для PHPExcel существует огромное использование памяти при создании листа Excel из базы данных. Я использую базу данных mysql, а возвращаемые строки - около 14K плюс. Мне нужно создать лист Excel для этих записей.PHPEXCEL Неустранимая ошибка: разрешенный размер памяти 134217728 байт исчерпан. Проблема для addTableRow() menthod
Возможно создание листа Excel с использованием этого кода для небольших записей, однако для записей 14K этот код прерывается. Я видел методы кеширования ячеек, но будучи новичком с PHPExcel, мне очень сложно.
Может ли кто-нибудь помочь мне решить эту проблему.
Источник: https://github.com/segy/PhpExcel
Ниже мой фрагмент кода:
App::import('Component', 'PhpExcel');
$phpExcelObj = new PhpExcelComponent();
$phpExcelObj->createWorksheet()->setDefaultFont('Calibri', 12);
// define table cells
$table = array(
array('label' => ('Id'), 'wrap' => true),
array('label' => ('Name'), 'wrap' => true, 'filter' => true),
array('label' => ('Email_id'), 'wrap' => true, 'filter' => true),
array('label' => ('status'), 'wrap' => true, 'filter' => true)
);
$phpExcelObj->addTableHeader($table, array('name' => 'Cambria', 'bold' => true));
$indx = 1;
foreach ($ckt_dtls as $usr_dtls) {
$rows[] = $indx;
$rows[] = $usr_dtls['name'];
$rows[] = $u_email;
$rows[] = $stat;
$indx++;
$phpExcelObj->addTableRow($rows);
}
$phpExcelObj->addTableFooter()->output($filename = $filename, $writer = 'Excel2007');
Ошибка я получаю:
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to
allocate 57 bytes) in /var/www/4thambit_v6/app/vendors/PHPExcel/Worksheet.php on line 1218