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
4:48:02 pm
Hola buenas tardes, ya he conseguido como exportar a excel usando codigo PHP. Pero quisiera saber si alguno ha trabajado con esta exportacion pero usando tablas dinamicas. Gracias de ante mano
Saludos!!!
2:57:23 pm
ya lo probe y es perfecto simple y funcional sin complicaciones.
3:13:18 pm
ahora tengo una complicacion yo quiero crear otra tabla con inf. diferent y solo le cambio el nombre donde dice:
filename=NOMBRE.xls”); por filename=PERSONAS.xls”); Y oa inf. ya no me la muestra en el explorador solo me envia una ventana para abrir guardar o cancelar de manera directa, no se a que se debe y si me pueden ayudar, gracias.
10:55:54 am
@Sarce: De hecho lo segundo que te sucede es lo que debiese pasar normalmente.
Saludos!
1:19:58 pm
como hago el boton de exportar a excel si tengo la tabla asi
if(!$result){}else{
while ($p = mysql_fetch_assoc($result)) {
if($odd_even & 1){$color = ‘ bgcolor=”#E8E8E8″‘;}else{$color = ”;}
$echo .=’
‘.$p[‘nombre’].’
‘.$p[‘mmm’].’
‘.$p[‘yyy’].’
‘.$p[‘sum’].’
‘.$p[‘precio’].’
‘.$p[‘total’].’
alguien me pudede ayudar gracias
11:42:51 am
Hay alguna forma de que ese excel no pueda ser editado? estare ala espera de la respuesta
4:20:25 pm
Como puedo hacer para exportarlo directo desde mi web sin tener que guardar el archivo en mi servidor…
Gracias
8:43:09 pm
hola estou probando su programa pero em sale un error al guien me podria decir como solucionarlo.
Parse error: syntax error, unexpected T_STRING in C:\AppServ\www\como.php on line 75
8:46:56 pm
el codigo esta si
73
79Exportar
12:11:55 pm
Hola, tengo este codigo en un sitio y es bastante bueno, pero cuando la dimension de la data crece, abrir el excel es una pesadilla. Tengo 16000 registros y demora varios minutos en abrir… necesito optimizar este tiempo, como podra ser? agradezco la ayuda.