Para ello modificamos las cabeceras para hacer creer al navegador que estamos enviando un archivo binario con extensión .xsl:
header("Content-type: application/octet-stream"); // Contenido binario
header("Content-Disposition: attachment; filename=exportar.xls"); // Decimos que los datos están dispuestos como adjunto (lo podemos obviar y se abrirá el excel en el navegador) y le damos un nombre de archivo (se puede poner el que deseemos)
header("Pragma: no-cache"); // No se guarda en la cache (así nos aseguramos que se actualicen)
header("Expires: 0"); // Lo mismo que la anterior
A partir de aquí podemos enviar el contenido con un HTML mas o menos sencillo, para que Excel lo entienda bien. Se pueden usar 'headers' (<h1> .. <h7>), tablas, colores de letra y de fondo, creo que bordes de celda, pero nada de virguerías....
Este método sirve para cualquier lenguaje, cambiando el comando "header" por el equivalente.
Editado por Daniel el 08/05/2008 a las 07:28:53h.