28
Июл
2017

Экспорт xlsx файла из php

Пытаюсь сделать экспорт данных в xlsx файл. Сначала сделал экспорт в xls таким образом:

1) Вывожу нужные данные на страницу с помощью echo

2) Выполняю код:

$xls_data = ob_get_clean();

header("Content-type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=export.xls");

echo $xls_data;
exit();

3) Получаю файл export.xls - то есть всё работает.

Проблема возникла с xlsx. Поискал на разных источниках какие нужно писать заголовки для экспорта xlsx, но всевозможные варианты не работают. Файл скачивается, но открыть его не удаётся (ошибка "Файл повреждён или имеет неверное расширение").

Пробую экспортировать xlsx так:

$xls_data = ob_get_clean();

header("Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
header("Content-Disposition: attachment; filename=export.xlsx");
header('Content-Transfer-Encoding: binary');

echo $xls_data;
exit();

Подскажите в чём моя ошибка?

P.S. Различные библиотеки для формирования xlsx прошу не предлагать.

Пример моего файла xlsx, открытого в блокноте:

<table border=1 cellspacing=0>
<tr>
<td style="padding:2px 5px; mso-number-format:\@;">№</td>
<td style="padding:2px 5px; mso-number-format:\@;">Заголовок материала</td>
<td style="padding:2px 5px; mso-number-format:\@;">Эксклюзив</td>
<td style="padding:2px 5px; mso-number-format:\@;">Ссылка на материал на сайте</td>
<td style="padding:2px 5px; mso-number-format:\@;">Дата публикации</td>
<td style="padding:2px 5px; mso-number-format:\@;">Время публикации</td>
<td style="padding:2px 5px; mso-number-format:\@;">Создатель материала</td>
<td style="padding:2px 5px; mso-number-format:\@;">Автор материала</td>
<td style="padding:2px 5px; mso-number-format:\@;">Категории</td>
<td style="padding:2px 5px; mso-number-format:\@;">Просмотры</td>
<td style="padding:2px 5px; mso-number-format:\@;">Просмотры 24</td>
<td style="padding:2px 5px; mso-number-format:\@;">Теги</td>
<td style="padding:2px 5px; mso-number-format:\@;">Символы</td>
</tr>
...
</table> 

Источник: https://ru.stackoverflow.com/questions/698823/%D0%AD%D0%BA%D1%81%D0%BF%D0%BE%D1%80%D1%82-xlsx-%D1%84%D0%B0%D0%B9%D0%BB%D0%B0-%D0%B8%D0%B7-php

Share

Тебе может это понравится...