Foros del Web » Programando para Internet » PHP »

boton exportar excel

Estas en el tema de boton exportar excel en el foro de PHP en Foros del Web. existe la manera de que un input button me pueda exportar una consulta mysql a un archivo excel??? Saludos...
  #1 (permalink)  
Antiguo 16/10/2012, 14:09
 
Fecha de Ingreso: junio-2012
Ubicación: Santiago de Chile
Mensajes: 164
Antigüedad: 11 años, 10 meses
Puntos: 1
boton exportar excel

existe la manera de que un input button me pueda exportar una consulta mysql a un archivo excel???



Saludos
  #2 (permalink)  
Antiguo 16/10/2012, 14:13
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: boton exportar excel

Sí, siempre y cuando realices el código que lleve esos datos de mysql a excel.

Algunas personas hacen algo muy rudimentario: crean un html con los datos como si fuera a imprimir a pantalla pero agregan unops encabezados (headers) para que el navegador descargue el contenido como si fuera un archivo con extensión xls y excel puede abrir dicho archivo.

Otra opción es grabar un archivo en excel real con librerías como phpexcel de codeplex, que permite muchas opciones.
  #3 (permalink)  
Antiguo 16/10/2012, 14:30
 
Fecha de Ingreso: junio-2012
Ubicación: Santiago de Chile
Mensajes: 164
Antigüedad: 11 años, 10 meses
Puntos: 1
Respuesta: boton exportar excel

Cita:
Iniciado por ocp001a Ver Mensaje
Sí, siempre y cuando realices el código que lleve esos datos de mysql a excel.

Algunas personas hacen algo muy rudimentario: crean un html con los datos como si fuera a imprimir a pantalla pero agregan unops encabezados (headers) para que el navegador descargue el contenido como si fuera un archivo con extensión xls y excel puede abrir dicho archivo.

Otra opción es grabar un archivo en excel real con librerías como phpexcel de codeplex, que permite muchas opciones.

resulta que tengo una consulta en php, que hace esta a una base de mysql, al hacer la consulta, tengo un boton que dice exportar, quiero que ese boton haga el trabajo, lo hice con los headers como dices, pero exite alguna forma mejor???

te dejo la consulta aquí

y el boton es algo asi

[PHP]]<input type="button" value="Exportar" onclick="window.location = 'exportar.php'" />
[/PHP

Código PHP:

$consulta 
"SELECT * FROM solicitud_credito WHERE area_usuario=".$area;
if (
$rut!=''){$consulta=$consulta." and rut_cliente like '%".$rut."%'";}
if (
$_POST["mes"]!=''){$consulta=$consulta." and num_fecha>=".$numdias1." and num_fecha<=".$numdias2;}
$consulta=$consulta." order by numero DESC";
$result mysql_query($consulta);
if (
mysql_num_rows($result)>0){
   
$i=0;
   
$rows=mysql_num_rows($result);
   while(
$i $rows) {
      echo(
"<tr>");
      echo(
"<td><a href=ver_cliente.php?num=".mysql_result($result$i"num_cliente").">Ver</a></td>");
      echo(
"<td width=100>".mysql_result($result$i"numero")."</td>");
      echo(
"<td width=100>".mysql_result($result$i"rut_cliente")."</td>");
      echo(
"<td>".mysql_result($result$i"cliente")."</td>");
      
$result1 mysql_query("SELECT * FROM usuarios WHERE num_unico=".mysql_result($result$i"usuario"));
      if (
mysql_num_rows($result1)>0){
      
$z=0;
      echo(
"<td>".mysql_result($result1$z"nombre_largo")."</td>");
      
$z++;
      }
      
$result2 mysql_query("SELECT * FROM empresa".$extension." WHERE Numero=".mysql_result($result$i"num_cliente"));
      if (
mysql_num_rows($result2)>0){
      
$x=0;
      echo(
"<td>".mysql_result($result$i"Fecha")."</td>");
         echo(
"<td>".mysql_result($result2$x"fono1")."</td>");
         echo(
"<td>".mysql_result($result2$x"fono2")."</td>");
         echo(
"<td>".mysql_result($result2$x"celular")."</td>");
         echo(
"<td>".mysql_result($result2$x"email_personal")."</td>");
         echo(
"<td>".mysql_result($result2$x"comuna")."</td>");
         echo(
"<td>".mysql_result($result2$x"Direccion")."</td>");
      }else{
      echo(
"<td></td>");
      }
      
$x++;
      echo(
"</tr>");
   
$i++;
   }
}
echo(
"</table>");

  #4 (permalink)  
Antiguo 16/10/2012, 14:51
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: boton exportar excel

Como sabrás, el botón per se no hará el trabajo, dicho botón llamará un proceso que genere el archivo.

Como te decía,es posible crear un archivo excel REAL, es decir, un verdadero excel al que le puedes poner color de celda, freeze panes, celdas combinadas, formatos de celda (moneda, texto, entero, etc) con liberías como phpexcel, es más labor, al tener que colocar cada dato en su celda correspondiente, pero el resultado vale la pena. SI te bajas la librería, viene con una documentación con ejemplos muy sencillos.
  #5 (permalink)  
Antiguo 16/10/2012, 15:06
Avatar de portalmana  
Fecha de Ingreso: septiembre-2007
Ubicación: Montevideo-Uruguay
Mensajes: 633
Antigüedad: 16 años, 6 meses
Puntos: 80
Respuesta: boton exportar excel

Te dejo una rutina quizas te pueda servir de ayuda.

DEAME3P
Saludos
__________________
"La imaginación es más importante que el conocimiento. El conocimiento es limitado, mientras que la imaginación no" -- A.Einstein
objetivophp.com,twitter.com/objetivophp
  #6 (permalink)  
Antiguo 16/10/2012, 15:09
 
Fecha de Ingreso: junio-2012
Ubicación: Santiago de Chile
Mensajes: 164
Antigüedad: 11 años, 10 meses
Puntos: 1
Respuesta: boton exportar excel

Cita:
Iniciado por ocp001a Ver Mensaje
Como sabrás, el botón per se no hará el trabajo, dicho botón llamará un proceso que genere el archivo.

Como te decía,es posible crear un archivo excel REAL, es decir, un verdadero excel al que le puedes poner color de celda, freeze panes, celdas combinadas, formatos de celda (moneda, texto, entero, etc) con liberías como phpexcel, es más labor, al tener que colocar cada dato en su celda correspondiente, pero el resultado vale la pena. SI te bajas la librería, viene con una documentación con ejemplos muy sencillos.
si, esta bien...lo que no puedo hacer es enviar la consulta al archivo que me crea el excel, eso me está costando mucho
  #7 (permalink)  
Antiguo 16/10/2012, 15:32
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: boton exportar excel

Bueno, tienes dos opciones:
1. Generas el excel a la par que haces la consulta la primera vez (con el código que ya mostraste) y al terminar de crear la tabla agregas un link al archivo excel creado.

2. Reenvías los datos de la consulta para recrearla y hacer el excel solamente.

De la primer forma ahorras tener que duplicar el script, pero si la gente no siempre baja el excel es proceso sobrante.
De la segunda forma es más adecuado, pero no has aclarado de donde obtienes los datos de la consulta. Veo que usas _POST, pero no en todas las variables de tu consulta.
  #8 (permalink)  
Antiguo 16/10/2012, 22:47
 
Fecha de Ingreso: junio-2012
Ubicación: Santiago de Chile
Mensajes: 164
Antigüedad: 11 años, 10 meses
Puntos: 1
Respuesta: boton exportar excel

Cita:
Iniciado por ocp001a Ver Mensaje
Bueno, tienes dos opciones:
1. Generas el excel a la par que haces la consulta la primera vez (con el código que ya mostraste) y al terminar de crear la tabla agregas un link al archivo excel creado.

2. Reenvías los datos de la consulta para recrearla y hacer el excel solamente.

De la primer forma ahorras tener que duplicar el script, pero si la gente no siempre baja el excel es proceso sobrante.
De la segunda forma es más adecuado, pero no has aclarado de donde obtienes los datos de la consulta. Veo que usas _POST, pero no en todas las variables de tu consulta.

son datos de cajas de textos y de selects, que estan en un form con method post al mismo php, por eso algunos datos. como el mes, los recojo por post...

eso de reenviar los datos de la consulta me parece bueno, pero lo unico que se me ocurre es que cada dato de la consulta se guarde en un campo hidden y me aprece que no es adecuado...sería muy pesado el codigo,,,podrías ayudarme a enviar los datos al exportar.php
  #9 (permalink)  
Antiguo 18/10/2012, 11:08
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: boton exportar excel

Podrías guardar el string de la consulta tal cual la haces en una variable de sesión, para que al ir al proceso de excel, éste sólo tome la variable de sesión, haga la consulta y cree el excel.

En tu página donde haces la consulta debes primero crear la sesión, como primer linea de código
<?php
session_start();

y antes de hacer tu consulta, guardar en sesion

$_SESSION['consulta']=$consulta;
$result = mysql_query($consulta);


Luego, en el script donde vas a crear el excel, nuevamente abres sesión


<?php
session_start();

y recuperas la consulta

$consulta=$_SESSION['consulta'];

Así puedes consultar y crear el excel, el cual ya depende de cómo quieras armarlo, en html o excel real.
  #10 (permalink)  
Antiguo 19/10/2012, 08:57
 
Fecha de Ingreso: junio-2012
Ubicación: Santiago de Chile
Mensajes: 164
Antigüedad: 11 años, 10 meses
Puntos: 1
Respuesta: boton exportar excel

Cita:
Iniciado por ocp001a Ver Mensaje
Podrías guardar el string de la consulta tal cual la haces en una variable de sesión, para que al ir al proceso de excel, éste sólo tome la variable de sesión, haga la consulta y cree el excel.

En tu página donde haces la consulta debes primero crear la sesión, como primer linea de código
<?php
session_start();

y antes de hacer tu consulta, guardar en sesion

$_SESSION['consulta']=$consulta;
$result = mysql_query($consulta);


Luego, en el script donde vas a crear el excel, nuevamente abres sesión


<?php
session_start();

y recuperas la consulta

$consulta=$_SESSION['consulta'];

Así puedes consultar y crear el excel, el cual ya depende de cómo quieras armarlo, en html o excel real.


compa me funciona perfe, pero abajo me arroja este warning

Warning: Unknown: Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively in Unknown on line 0

Última edición por gusanosxr; 19/10/2012 a las 11:31
  #11 (permalink)  
Antiguo 19/10/2012, 13:05
Avatar de DeivisAndres  
Fecha de Ingreso: febrero-2012
Ubicación: Colombia
Mensajes: 305
Antigüedad: 12 años, 2 meses
Puntos: 41
Respuesta: boton exportar excel

De pronto tengas una variable con el mismo nombre que su sesión. por ejemplo:
$ _SESSION[ 'var1' ] = NULL;
$ var1= "algo";

Cambian el nombre de la SESSION.

Si no es así he chale un vistazo a esta pagina: Warning: Unknown(): Your script possibly relies on a session

Etiquetas: excel, mysql, botones
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 11:02.