Случайно сохранил обычный HTML-файл с расширением .XLS(MS Excel) и, не обратив на то внимание, кликнул на него. Какого было мое удивление, когда MS Excel принял, как родного, созданный таким способом файл.
Пример того, что я наваял — таблица:
<table border="0" cellspacing="0" cellpadding="5">
<tbody>
<tr>
<th>№</th>
<th>Наименование</th>
<th>Цена</th>
</tr>
<tr>
<td>1</td>
<td>Дизаин сайта</td>
<td>От 15,000 рублей</td>
</tr>
</tbody>
</table>
Теперь таким образом генерю прайс-листы на сервере прямиком из MySQL. Генерим обычный HTML и отдаем его заголовком
< ?php
...
header('Content-type:application/vnd.ms-excel');
...
?>
Источник: https://www.kobzarev.com/programming/xls-generate/