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
10:41:17 am
no funciona!!
7:44:13 pm
Muchas gracias, es lo que andaba buscando. Solo hay que corregir unos (?) o (“) y poner (‘) y ya queda listo!!!
11:01:24 am
Excelente aporte, tengo una duda como puedo insertar imagenes? intente poner la imagen con la etiqueta pero no en el archivo me dice que la imagen se elimino o se movio cabe mencionar que la imagen que quiero poner si esta en la ruta y cargada en el servidor Gracias
10:51:13 am
Este script crea un archivo excel correctamente y de manera muy sencilla, personalmente crei que no funcionaba ya que el link hace un llamado a una pagina que no existe en mi sitio (exportar.php) pero lo hice por curiosidad y me sorprendi al ver que abrio en excel.
PERO el archivo de excel trae TODA la pagina y lo que yo necesito traer a excel es solamente la tabla, por lo tanto me toca ver como hago. Se me ocurre enviar la sola tabla a otra pagina y hacer la exportacion desde esta otra pagina.. no se.
10:49:43 am
fantastico, es justamente lo que estaba buscando y me ha sido tremendamente útil.
9:04:02 am
Hola, muy bueno el código, como puedo hacer para descargar desde una bd con fecha y hora gracias.
7:05:55 am
Hola Alejandro lo puedes hacer haciendo una consulta a la base de datos de los datos que quieres pasar a exel, después que tengas los datos usas el código que esta arriba con un for() o lo puedes hacer con un foreach(){}, si analizar un poco lo que necesitas es fácil hacerlo.
1:42:47 pm
muy bueno tu apunte excelente
3:27:05 pm
Funciono a la perfección!
Gracias…
12:02:44 pm
Buenas, inicialmente funciona bien, me guarda el xls a la carpeta de descargas pero al abrirlo me lanza un error de que tiene otro formato que el especificado por la extensión del archivo, me da la opción de abrir de todas formas, le digo que sí y acaba en un error de archivo dañado y no se puede abrir ¿le ha pasado a alguien y lo ha podido arreglar? Gracias, un saludo.