Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Exportar tabla a excel

Estas en el tema de Exportar tabla a excel en el foro de PHP en Foros del Web. Hola a todos, este es mi primer mensaje en el foro aunque me habeis ayudado leyendo en innumerable multitud de ocasiones, por eso en primer ...
  #1 (permalink)  
Antiguo 14/03/2013, 06:47
 
Fecha de Ingreso: marzo-2013
Mensajes: 4
Antigüedad: 11 años, 1 mes
Puntos: 0
Exportar tabla a excel

Hola a todos, este es mi primer mensaje en el foro aunque me habeis ayudado leyendo en innumerable multitud de ocasiones, por eso en primer lugar os doy las gracias por vuestra ayuda. Y ahora al turrón.
Tengo un codigo en el que creo una tabla con datos de una consulta a mysql, y la tabla se me muestra en pantalla, pero no consigo exportarla a excel, que es lo que quiero que el usuario pueda hacer. He leido en otros post que añadiendo un codigo al principio ya se podría pero lo he hecho y sigue igual. Aqui mando el código a ver si me podeis decir que es lo que me falta, porque ya no se que mas mirar


Código PHP:
   php session_start();
    include(
"config.php");
      
header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT");  
    
header ("Last-Modified: " gmdate("D,d M YH:i:s") . " GMT");  
    
header ("Cache-Control: no-cache, must-revalidate");  
    
header ("Pragma: no-cache");  
    
header ("Content-type: application/x-msexcel");  
    
header ("Content-Disposition: attachment; filename=\"prueba.xls\"" );
echo 
"";
    echo 
"<html>";
    echo 
"<head>";
    
$db=mysql_pconnect($server,$db_user,$db_pass);
    if (!
$db) die("Error al conectar con la base de datos. Ponte en contacto con el programador");
    
mysql_select_db("$database");
    
$sql1="select * from clientes where clientes.ID>'3'";
    
$res1=mysql_query($sql1);
    if (!
$res1) echo "Ha ocurrido un error al recuperar los clientes";                
    else
        {
         echo 
"<table align='center' border='1'>";
         echo 
"<tr><td colspan='9' align='center'><b> Lista de Socios </b> </td></tr>";
         echo 
"<tr><td><b>Nombre</td><td><b>Apellidos</td><td><b>Usuario</td><td><b>Teléfono</td><td><b>Dirección</td><td><b>Población</td><td><b>Email</td><td><b>Socio</td><td><b>Activado</td></b></tr>";                          
                while (
$reg1=mysql_fetch_array($res1))
                        {
                        echo 
"<tr><td>$reg1[1]</td><td>$reg1[2]</td><td>$reg1[3]</td><td>$reg1[5]</td><td>$reg1[6]</td><td>$reg1[7]</td><td>$reg1[8]</td><td>$reg1[9]</td><td>$reg1[10]</td></tr>";
                        }
                 echo 
"</table>";
                 echo 
"<a href='./listado.php'>Exportar</a>";
                }
        
echo 
"</body>         ";
echo 
"</html>"
  #2 (permalink)  
Antiguo 14/03/2013, 07:48
Avatar de evolutionrgm  
Fecha de Ingreso: mayo-2011
Mensajes: 108
Antigüedad: 12 años, 11 meses
Puntos: 5
Respuesta: Exportar tabla a excel

Hola estimado prueba esto y me dices

Código PHP:
Ver original
  1.     include("config.php");
  2. //agregue esta sentencia      
  3. echo "";
  4.     echo "<html>";
  5.     echo "<head>";
  6.     $db=mysql_pconnect($server,$db_user,$db_pass);
  7.     if (!$db) die("Error al conectar con la base de datos. Ponte en contacto con el programador");
  8.     mysql_select_db("$database");
  9.     $sql1="select * from clientes where clientes.ID>'3'";
  10.     $res1=mysql_query($sql1);
  11.     if (!$res1) echo "Ha ocurrido un error al recuperar los clientes";                
  12.     else
  13.         {
  14.          echo "<table align='center' border='1'>";
  15.          echo "<tr><td colspan='9' align='center'><b> Lista de Socios </b> </td></tr>";
  16.          echo "<tr><td><b>Nombre</td><td><b>Apellidos</td><td><b>Usuario</td><td><b>Teléfono</td><td><b>Dirección</td><td><b>Población</td><td><b>Email</td><td><b>Socio</td><td><b>Activado</td></b></tr>";                          
  17.                 while ($reg1=mysql_fetch_array($res1))
  18.                         {
  19.                         echo "<tr><td>$reg1[1]</td><td>$reg1[2]</td><td>$reg1[3]</td><td>$reg1[5]</td><td>$reg1[6]</td><td>$reg1[7]</td><td>$reg1[8]</td><td>$reg1[9]</td><td>$reg1[10]</td></tr>";
  20.                         }
  21.                  echo "</table>";
  22.                  echo "<a href='./listado.php'>Exportar</a>";
  23.                 }
  24.        
  25. echo "</body>         ";
  26. echo "</html>";  
  27.  
  28. $reporte = ob_get_clean();
  29. /********************************************
  30. Set the automatic downloadn section
  31. /********************************************/
  32.  
  33. header("Content-type: application/vnd.ms-excel");
  34. header("Content-Disposition: attachment; filename=consulta.xls");
  35. header("Pragma: no-cache");
  36. header("Expires: 0");  
  37.  
  38. echo $reporte;
  39.  
  40. }
  #3 (permalink)  
Antiguo 14/03/2013, 07:50
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 6 meses
Puntos: 175
Respuesta: Exportar tabla a excel

A ver si te sirve... a mi me resulta bien..

http://webintenta.com/exportar-tabla...-y-jquery.html
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #4 (permalink)  
Antiguo 15/03/2013, 04:35
 
Fecha de Ingreso: marzo-2013
Mensajes: 4
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Exportar tabla a excel

Hola de nuevo, con la solución de evolutionrgm sigo igual, me muestra la tabla en pantalla, pero cuando pulso en el hiperenlace recarga la pagina.

Con la de loncho_rojas perfecto.

Muchas gracias a todos!!!!

Última edición por Nebro; 15/03/2013 a las 05:10

Etiquetas: excel, html, mysql, select, sql, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:27.