Задать вопрос
@salem_sakarov

Как решить проблему с выгрузкой данных в Excel?

Добрый день, коллеги! Нужна ваша помощь!

Ситуация: сайт на Битрикс, выгрузка анкет с кучей полей в xml as xls, локально все работает ,на хостинге работает только если записей не более 2.5к+(файл ~27мб). Более 2.5К+ возвращается пустой файл 0 байт.

memory_limit 256M
max_execution_time 60

Где я ошибаюсь? Что не так?

$file = $arFilter['PROPERTY_ANKETA_TYPE'].'_tmp.php';
$content =  renderPhpToString($file,array('arData'=>$arData));

	function renderPhpToString($file, $vars=null)
	{
		if (is_array($vars) && !empty($vars)) {
			extract($vars);
		}
		ob_start();
		include $file;
		return ob_get_clean();
	}
	
	
    header('Content-Type: application/vnd.ms-excel; charset=utf-8;');
    header('Content-Disposition: attachment;filename="report_'.$arFilter['PROPERTY_ANKETA_TYPE'].'_' . date("d-m-Y") . '.xls"');
    header('Cache-Control: max-age=0');
    header('Cache-Control: no-store, no-cache, must-revalidate');
    header('Cache-Control: post-check=0, pre-check=0', FALSE);
    header('Pragma: no-cache'); 
	echo $content;
    exit;


В excel_tmp.php просто foreach
<?foreach($arData as $i => $arr):?>
   <Row>
   <?foreach($arr as $k => $value):?>
    <Cell><Data ss:Type="String"><?=$value?></Data></Cell>
   <?endforeach;?>
   </Row>
<?endforeach;?>
  • Вопрос задан
  • 4722 просмотра
Подписаться 3 Оценить 1 комментарий
Пригласить эксперта
Ответы на вопрос 2
у вас nginx файлик не режет случаем? Какое значение у client_max_body_size ?

Ну и заголовки ответа можете скинуть, вдруг что там найдется.
Ответ написан
Комментировать
@salem_sakarov Автор вопроса
Хостер временно увеличил memory_limit , все заработало, несчастные 2.5 записей....
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы