La mayoría de desarrolladores PHP se ha encontrado en la situación de generar archivos Excel a partir de una o varias consultas a bases de datos. En este tutorial explicaremos como exportar información expresada en tablas HTML a un archivo Excel usando PHP.
Antes de empezar
Para exportar información hacia una hoja Excel debemos tener nuestra data en forma de tabla HTML. Usaremos la siguiente tabla para este post. Recuerda que puedes generar tablas HTML desde cualquier consulta a tu base de datos.
Creando el archivo exportarXLS.php
En este caso en particular, cuando se necesita añadir estilos a la tabla HTML estos tendran que estar incluidos en el código y no apartados en una hoja de estilos, solo de esta forma formarán parte del archivo Excel.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
<?php //establecemos el timezone para obtener la hora local date_default_timezone_set('America/Lima'); //la fecha y hora de exportación sera parte del nombre del archivo Excel $fecha = date("d-m-Y H:i:s"); //Inicio de exportación en Excel header('Content-type: application/vnd.ms-excel'); header("Content-Disposition: attachment; filename=Reporte_$fecha.xls"); //Indica el nombre del archivo resultante header("Pragma: no-cache"); header("Expires: 0"); echo "<table> <tr> <th style='background:#CCC; color:#000'> Nombres </th> <th style='background:#CCC; color:#000'> Apellidos </th> <th style='background:#CCC; color:#000'> Email </th> </tr> <tr> <td> Jose </td> <td> Perez </td> <td> jose.perez@correo.com </td> </tr> <tr> <td> Maria </td> <td> Sanchez </td> <td style='background:yellow'> maria.sanchez@correo.com </td> </tr> <tr> <td> Juan </td> <td> Lopez </td> <td> juan.lopez@correo.com </td> </tr> <tr> <td> Carmen </td> <td> Gonzales </td> <td> carmen.gonzales@correo.com </td> </tr> </table>"; ?> |
De esta forma práctica podemos exportar una tabla en HTML y sus valores a un archivo Excel.
Recuerda que la tabla HTML puede ser el resultado de una consulta a la base de datos.
El resultado del código anterior? Aquí lo tienes:
Y observa el detalle de los estilos en las cabeceras de la tabla y el fondo amarillo de la celda, esos estilos fueron agregados directamente en el código HTML.
Recomendaciones
- Solo se recomienda usar este método con tablas no muy extensas.
- En caso de exportar demasiada información a un archivo Excel recomiendo usar la libreria PHPExcel o en su defecto exportar los datos a formato CSV.
- Recuerda que puedes aplicar formatos de datos númericos o fechas antes de exportarlos a Excel.
Recuerden que pueden descargar el código de este artículo desde Github.
Espero les haya servido este pequeño tutorial. No olviden compartir este artículo en las redes sociales y dejen sus comentarios.
Saludos!