Ver Mensaje Individual
  #7 (permalink)  
Antiguo 09/02/2005, 16:06
Avatar de e-miliox
e-miliox
 
Fecha de Ingreso: noviembre-2002
Ubicación: San Antonio - Chile
Mensajes: 223
Antigüedad: 21 años, 5 meses
Puntos: 7
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
__________________
=PoWeReD By MySeLf!=

Última edición por e-miliox; 09/02/2005 a las 16:07