Вы не можете автоматически преобразовать разметку HTML в файл Excel, просто отправив соответствующие заголовки в браузер. То, что вы делаете, по-прежнему отправляет пользователю файл HTML, и MS Excel будет прощать и открывать его (но это MS Excel, который выполняет синтаксический анализ / преобразование разметки HTML в формат, который он может понимать и отображать), а не заголовки что вы отправляете ... обратите внимание, что самые последние версии MS Excel могут при этом выдавать предупреждающее сообщение, а не лучший пользовательский опыт.
Когда MS Excel анализирует / конвертирует файл HTML, он только когда-либо обрабатывает разметку в один рабочий лист; поэтому, если вы не измените способ работы над созданием реального файла Excel, вы не сможете создать файл, который будет считываться как две или более таблицы MS Excel.
Список библиотек, способных создавать «настоящие» файлы Excel, можно найти в ответе на на этот вопрос . Мой собственный предпочтительный вариант - использовать PHPExcel (я предвзят, я ведущий разработчик). Однако вам нужно будет переписать ваш шаблон как шаблон Excel, а не как HTML ... дорожная карта на предстоящий год включает в себя возможность анализа HTML в Excel, и это позволит создавать несколько рабочих листов из нескольких «страниц» HTML , но эта опция еще не доступна (вероятно, не раньше, чем в июне).