Bueno, no es prolijo... pero Excel puede leer también documentos HTML. Genera una página HTML (en realidad, sólo la página PHP, no hace falta que "guardes un archivo", basta con que le mandes el contenido al navegador) con los headers adecuados y listo, Excel intentará abrirlo, te mostrará un mensaje de advertencia de que no es un archivo de Excel y después lo abrirá. No uses imágenes ni archivos externos (por ejemplo un CSS) porque no los tomará. Si necesitas usar un CSS y lo tienes en otro archivo, puedes imprimirlo entres los tags
<style></style> con (por ejemplo) la función
readfile. Una vez hice ese proceso para "exportar" unas tablas a Excel. Es un método rápido, pero realmente no te está creando un archivo Excel (.xls). Para ello deberías usar la librería
PHPExcel como bien dijo
Abimaelrc. ¡Suerte!