Hola
Aca les entrego un ejemplo para generar archivos Excel de manera sencilla. Obviamente esto es una manera super basica de enviar la data a una planilla, hay clases mucho mas completas para esta tarea, sin embargo, la manera que les voy a dar a continuacion no deja de ser efectiva.
Código PHP:
<?php
// ...
// sacar todos los libros de la tabla ordenados por precio y nombre
$select = "Select nombre, precio from Libros order by precio desc, nombre asc";
$result = mysql_query($select) or die("Error al ejecutar la consulta<br />". mysql_error());
if (mysql_num_rows($result) > 0)
{
// no regreso filas, informamos y finalizamos
echo "sorry pero no se encontraron libros en la base de datos.";
}
else
{
// encontramos filas, entonces generaremos una estructura de tablas HTML tal como si
// la fueramos a desplegar en el navegador con ECHO's pero en vez de eso
// la guardamos en una VARIABLE...
// inicio tabla y sus encabezados...
$strOutput = "
<table>
<tr>
<td><b>Nombre</b></td>
<td><b>Precio</b></td>
</tr>
";
// recorremos todos los registros obtenidos por la consulta
while($list($strNombreLibro, $strPrecioLibro) = mysql_fetch_row($result))
{
// ...y los vamos tabulando (ojo con el punto antes de la asignacion, estamos concatenando)
$strOutput .= "
<tr>
<td>".$strNombreLibro."</td>
<td>".$strPrecioLibro."</td>
</tr>
";
}
// termino tabla (lo mismo con respecto al punto)
$strOutput .= "
</table>
";
// una vez que tenemos los datos tabulados en la estructura HTML
// modificamos los encabezados de la pagina para que el navegador piense que le estamos
// enviando un archivo excel.
// NOTA: aca otra restriccion: para que funcione y no de un error de "headers already sent"
// este script no debe enviar ninguna otra salida al navegador ANTES
header("Content-Description: File Transfer");
header("Content-Type: application/force-download");
// ARCHIVO.XLS es el nombre del archivo que saldra, puedes cambiarlo
header("Content-Disposition: attachment; filename=ARCHIVO.XLS");
// una vez modificados los encabezados, hacemos ECHO de la salida (el HTML generado anteriormente)
// este es el unico echo que se hace si el proceso se ha realizado sin problemas
echo $strOutput;
// y... fin :)
die();
}
?>
Una vez ejecutado este codigo te saldra la tipica ventanita para bajar una archivo, le das aceptar y lo guardas, luego lo abres con el excel y listo :)
Eso seria
Saludos