Hoy, vamos a enseñar algo muy sencillo y por lo demás muy útil y necesario.
Vamos a ver como exportar a un archivo XLS (que no es propiamente de Excel, pero este lo puedo leer) desde un link en PHP.
Para ver como lo hago, vamos después del salto.
– Un editor web en PHP (para esta ocasión utilizaremos nuestro siempre recomendado Adobe Dreamweaver)
– Un servidor que soporte y ejecute archivos en PHP.
1.- Primero creamos un archivo PHP con la información que queremos exportar a Excel, por ejemplo creamos una tabla que muestre el nombre, edad y sexo de 10 personas.
Para esto usamos un código similar a este:
<html>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />
<title>comolohago.clt</title>
<style type=”text/css”>
<!–
.style1 {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-weight: bold;
}
.style2 {font-family: Verdana, Arial, Helvetica, sans-serif}
–>
</style>
</head>
<body>
<table width=”200″ border=”1″>
<tr>
<td><span class=”style1″>Nombre </span></td>
<td><span class=”style1″>Edad</span></td>
<td><span class=”style1″>Sexo</span></td>
</tr>
<tr>
<td><span class=”style2″>Andres</span></td>
<td><span class=”style2″>20</span></td>
<td><span class=”style2″>M</span></td>
</tr>
<tr>
<td><span class=”style2″>Pamela</span></td>
<td><span class=”style2″>23</span></td>
<td><span class=”style2″>F</span></td>
</tr>
<tr>
<td><span class=”style2″>Jose</span></td>
<td><span class=”style2″>28</span></td>
<td><span class=”style2″>M</span></td>
</tr>
<tr>
<td><span class=”style2″>Marcela</span></td>
<td><span class=”style2″>35</span></td>
<td><span class=”style2″>F</span></td>
</tr>
<tr>
<td><span class=”style2″>Daniela</span></td>
<td><span class=”style2″>48</span></td>
<td><span class=”style2″>F</span></td>
</tr>
<tr>
<td><span class=”style2″>Carla</span></td>
<td><span class=”style2″>12</span></td>
<td><span class=”style2″>F</span></td>
</tr>
<tr>
<td><span class=”style2″>Mauricio</span></td>
<td><span class=”style2″>57</span></td>
<td><span class=”style2″>M</span></td>
</tr>
<tr>
<td><span class=”style2″>Debora</span></td>
<td><span class=”style2″>30</span></td>
<td><span class=”style2″>F</span></td>
</tr>
<tr>
<td><span class=”style2″>Antonio</span></td>
<td><span class=”style2″>19</span></td>
<td><span class=”style2″>M</span></td>
</tr>
<tr>
<td><span class=”style2″>Carlos</span></td>
<td><span class=”style2″>24</span></td>
<td><span class=”style2″>F</span></td>
</tr>
</table>
</body>
</html>
O si podemos, mejor aun, la creamos directamente, quedando algo así:
3.- Si revisamos el código anterior, vemos que todo parte en “<html>” y que hasta el momento no tiene nada de código en PHP, bueno ahora viene la magia.
Antes de la etiqueta “<html>” escribimos el siguiente código:
<?
header(“Content-Type: application/vnd.ms-excel”);
header(“Expires: 0”);
header(“Cache-Control: must-revalidate, post-check=0, pre-check=0”);
header(“content-disposition: attachment;filename=NOMBRE.xls”);
?>
Donde “NOMBRE” es el nombre, valga la redundancia, por defecto con el que se guardara nuestro archivo y pueden modificarlo sin problema, pero no pueden cambiar el “.xls”
4.- Ahora lo que nos queda es crear el link hacia nuestra página de exportación.
Por ejemplo, si el archivo que crearon lo guardaron con el nombre de “exportar.php” en la página donde dará la opción de exportar deberán poner un código del tipo.
<a href=”exportar.php”>Exportar</a>
Luego, al hacer clic en ese link, su explorador dará la opción de guardar el archivo.
Nota: Mucho ojo, que si el archivo, en este caso “Exportar.php” se agrega a través de un Include, arrojara un error.
Esto es porque el código que se debe agregar para exportar debe estar al principio de todo y al hacer esto con Include no se cumple esta condición.
Con esto ya tienen listo su exportación.
Cualquier duda, dejen su comentario.
Por ahora,
Me despido
6:36:53 pm
Wowwwww es lo que andaba buscando
4:26:16 pm
le digo que el codigo es una mierda!!!
la pagina es una mierda! putos!
aguante argentina!
2:26:54 am
parece k al de arriba no le resulto.jjajajaj gracias por la ayuda fue genial vale
5:26:29 pm
la rutina me funciona a la perfeccion en mozilla, pero en explorer no funciona, que puede ser?
9:10:24 pm
@GUSTAVO ADOLFO ALZATE: Este código realiza una exportación que no es Excel propiamente tal, sino que escribe un archivo en formato HTML que lo hace pasar como Excel, por eso lanza algunos warnings y es posible que algunas versiones de Explorer no los detecten bien.
Estamos actualmente preparando una actualización de este tutorial donde enseñamos a exportar con otros paquetes que si crean un Excel genuino y permiten manipularlo a detalle, así que atento.
Saludos
11:47:09 am
2 3 2 3
6:41:49 pm
[…] algún tiempo, Jorge Nitales nos enseñaba como exportar a Excel desde PHP, mediante un sencillo método en el que mediante el envío de cabeceras era posible formatear un […]
2:09:44 am
hola.
a mi tb me da problemas. lo probé en safari.
Parse error: syntax error, unexpected ‘:’ in/Applications/XAMPP/xamppfiles/htdocs/admin_contrato/administracion.php on line 87
12:26:55 pm
@david: Revisa la línea que te lanza error, tienes dos puntos en vez de un punto y coma.
Saludos!
1:17:44 pm
hola.. hay alguna forma de generar ese excel con los “alutofiltros y Movilizar paneles” activos???