Generar archivos de Excel y Word desde PHP casi por arte de magia by donestandares.wordpress.com

Fuente: donestandares.wordpress.com

 

En algunos proyectos sea personales o de oficina, necesitamos generar archivos Excel y Word desde PHP. a diferencia de formatos abiertos (los que comúnmente maneja Libre Office y otras offimáticas libres) que tienen mayor documentación, los archivos de propiedad de Microsoft son muy cerrados lo que dificulta la documentación.

Generar archivo EXCEL desde PHP

Lo primero que tenemos que entender, es que una hoja de cálculo es una tabla gigante, por lo tanto cuando vayamos a exportar, lo que exportaremos es una tabla HTML.

Una tabla de ejemplo de algunos jugadores de mi equipo del alma Millonarios FC

<h1>Tabla de asistencias Pase-gol de los jugadores de Millonarios F.C.</h1>
<table cellspacing="0" cellpadding="0">
 <tr>
 <th>Pedro Franco</th>
 <th>Wilson Carpintero</th>
 <th>&Aacute;lvaro Barros</th>
 <th>Mayer Candelo</th>
 </tr>
 <tr>
 <td>20</td>
 <td>80</td>
 <td>10</td>
 <td>34</td>
 </tr>
 <tr>
 <td>78</td>
 <td>90</td>
 <td>10</td>
 <td>02</td>
 </tr>
</table>

con esta tabla, procedemos a insertarle en la parte superior un código PHP que es el que generará el archivo de Microsoft Excel:

<?php
header('Content-type: application/vnd.ms-excel');
header("Content-Disposition: attachment; filename=nombre_del_archivo.xls");
header("Pragma: no-cache");
header("Expires: 0");
?>

Lo único que tenés que cambiarle es donde dice: “nombre_del_archivo.xls” y ya, ese es el nombre del archivo que genera.

El código final nos quedaría así:

<?
header('Content-type: application/vnd.ms-excel');
header("Content-Disposition: attachment; filename=nombre_del_archivo.xls");
header("Pragma: no-cache");
header("Expires: 0");?>
 
<h1>Tabla de asistencias Pase-gol de los jugadores de Millonarios F.C.</h1>
 
<table cellspacing="0" cellpadding="0">
 <tr>
 
 <th>Pedro Franco</th>
 <th>Wilson Carpintero</th>
 <th>&Aacute;lvaro Barros</th>
 <th>Mayer Candelo</th>
 </tr>
 <tr>
 <td>20</td>
 <td>80</td>
 <td>10</td>
 <td>34</td>
 </tr>
 <tr>
 <td>78</td>
 <td>90</td>
 <td>10</td>
 <td>02</td>
 </tr>
</table>

Guardás el archivo .php con el nombre que mirés adecuado, ejemplo tabla_jugadores_excel.php y lo abrís desde el la url normal, lo que te mostrará un cuadro de descarga del archivo excel

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s