ElTicus.com

Programación, lenguajes y recursos para programadores

Truco
Como generar un archivo XLS desde PHP
Mandar la salida de un reporte directamente al excel
Publicado por JL Fecha: 2007-01-24 09:01:43 Idioma: Espa帽ol Tipo de documento: Truco

Como generar un archivo XLS desde PHP

La idea consiste en generar un archivo de excel y que este archivo se abra en el MS-EXCEL tal como si se tratara de un archivo XLS, pero en realidad lo estaremos creando "al vuelo".

Deberemos considerar que un archivo de excel consta 煤nicamente de celdas, por lo que el c贸digo que generaremos deber谩 estar basado en celdas tambi茅n. La manera mas simple de hacerlo es generando una tabla en HTML. Podemos usar fuentes, colores, formatos e incluso concatenar celdas mediante colspan y rowspan . Pero las medidas de alto y ancho de tablas y celdas ser谩n ignorados por lo que no tiene caso utilizar width ni height. Cada cuadro de nuestra tabla en HTML pasar谩 a ser una celda de la hoja de excel.

Cuando ya tengamos el c贸digo en PHP que nos genere la tabla, simplemente agregamos las siguientes l铆neas al inicio:

  header("Content-type: application/vnd.ms-excel");
  header("Content-Disposition:  filename=\"NOMBRE.XLS\";");

Donde NOMBRE.XLS es el nombre del archivo con que se abrir谩 en el excel. Este c贸digo lo he probado con las versiones de excel 2000, 2002 y XP con buenos resultados y deber铆a de funcionar con cualquiera.


Tambien se pueden colocar f贸rmulas, y en este caso, estas deber谩n comenzar con el s铆mbolo de =
(igual). La utilizaci贸n de f贸rmulas puede se run poco compleja porque es necesario calcular pr茅viamente la celda a la que corresponder谩 cada dato.

Ejemplo completo:

El siguiente c贸digo deber谩 guardarse dentro de un archivo PHP y ejecutarse desde el navegador.


<?PHP 
 header("Content-type: application/vnd.ms-excel");
 header("Content-Disposition:  filename=\"X2003.XLS\";");
 
 echo "<table border=1>" ;
 echo "<tr><th> Estado </th><th> 2000  </th><th> 2001 </th><th> 2002 </th> </tr>";
 echo "<tr><td> Colima </td><td> 4.6  </td><td> 4.4 </td><td> 3.8 </td> </tr>";
 echo "<tr><td> Aguascalientes </td><td> 6.5  </td><td> 6.5 </td><td> 3.3 </td> </tr>";
 echo "<tr><td> Guerrero </td><td> 7.2  </td><td> 7.8 </td><td> 3.2 </td> </tr>";
 echo "<tr><td> Totales </td><td> =sum(b2:b4)  </td><td>  =c2+c3+c4 </td><td>  =sum(d2:d4) </td> </tr>";
 echo "</table>"; 
?>

En este ejemplo se coloc贸 una columna de Totales la cual se calcula en base a una f贸rmula.

NOTA: es necesario que el cliente tenga instalado Excel, si no lo tiene se le pedir谩 guardar el archivo en disco. El resultado tarda unos segundos en verse debido a que debe cargar la aplicaci贸n excel completa.




Hay 2 comentarios sobre este tema por parte de los lectores


Haz un comentario sobre este tema
Nombre email (no se muestra)
comentario:
Escribe las 2 letras que ves aqu: Imagen anti-spam =

Comentarios de parte de los lectores:

1. Comentario de cc el 2017-10-06 21:35:24
cc

2. Comentario de jjnjnjn el 2017-10-01 20:21:05
jnjnjnjn


Art韈ulos relacionados:
Truco Como generar un archivo .DOC de WORD desde PHP Truco Como generar un archivo .DOC/.RTF de WORD desde PHP (Incluyendo tablas) Recurso no clasificado 驴Que es la integridad referencial?