Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Exportar de mysql a excel

Estas en el tema de Exportar de mysql a excel en el foro de PHP en Foros del Web. Buenas tarde, tengo un aplicativo que va conectado a mysql, necesito poner una opcion que me exporte la tabla que tengo en excel nose como ...
  #1 (permalink)  
Antiguo 01/03/2013, 11:54
Avatar de JeMaGa  
Fecha de Ingreso: julio-2011
Ubicación: Bogota
Mensajes: 430
Antigüedad: 12 años, 9 meses
Puntos: 4
Exportar de mysql a excel

Buenas tarde, tengo un aplicativo que va conectado a mysql, necesito poner una opcion que me exporte la tabla que tengo en excel nose como pueda agradeceria toda la ayuda que me puedan brindar.
  #2 (permalink)  
Antiguo 01/03/2013, 12:23
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Exportar de mysql a excel

Hay una librería PHPExcel que te permite hacer eso; el único problema es que puede consumir mucha memoria y/o tardar un poco en crear el archivo, pero sólo necesitas un par de cambios en la configuración de PHP y podrías lograrlo con ini_set().
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 01/03/2013, 14:29
Avatar de patriciomase  
Fecha de Ingreso: abril-2012
Ubicación: Mar del Plata
Mensajes: 323
Antigüedad: 12 años
Puntos: 34
Respuesta: Exportar de mysql a excel

Si solo es exportar los datos podes generar un csv que es bastante mas facil. Solo escribir los datos separados por comas y listo. Luego en excel abres el csv
  #4 (permalink)  
Antiguo 06/03/2013, 06:21
Avatar de JeMaGa  
Fecha de Ingreso: julio-2011
Ubicación: Bogota
Mensajes: 430
Antigüedad: 12 años, 9 meses
Puntos: 4
Respuesta: Exportar de mysql a excel

Necesito que me muestre una tabla en excel, Tengo un formulario que muestra una tabla, necesito que oprimiendo el boton esa tabla se me exporte en excel, para poderla manejar en excel luego cuando lo necesiten.

Agradez toda la ayuda!! :)
  #5 (permalink)  
Antiguo 06/03/2013, 08:10
Avatar de evolutionrgm  
Fecha de Ingreso: mayo-2011
Mensajes: 108
Antigüedad: 13 años
Puntos: 5
Respuesta: Exportar de mysql a excel

estimado junto con saludar le citare un ejemplo que un usuario compartio con nosotros .. yo lo utilizo en mis aplicaciones y funciona de maravillas

Código PHP:
Ver original
  1. /*
  2. Mysql To Excel
  3. Generación de excel versión 1.0
  4. Nicolás Pardo - 2007
  5. */
  6. #Conexion a la db
  7. require_once('__conn.php');
  8.  
  9. #Sql, acá pone tu consulta a la tabla que necesites exportar filtrando los datos que creas necesarios.
  10. $sql = "
  11. SELECT
  12.    *
  13. FROM
  14.    usuarios
  15. WHERE
  16.    activo > -1
  17. ORDER BY
  18.    codigo DESC
  19. ";
  20.  
  21. $r = mysql_query( $sql ) or trigger_error( mysql_error($conn), E_USER_ERROR );
  22. $return = '';
  23. if( mysql_num_rows($r)>0){
  24.     $return .= '<table border=1>';
  25.     $cols = 0;
  26.     while($rs = mysql_fetch_row($r)){
  27.         $return .= '<tr>';
  28.         if($cols==0){
  29.             $cols = sizeof($rs);
  30.             $cols_names = array();
  31.             for($i=0; $i<$cols; $i++){
  32.                 $col_name = mysql_field_name($r,$i);
  33.                 $return .= '<th>'.htmlspecialchars($col_name).'</th>';
  34.                 $cols_names[$i] = $col_name;
  35.             }
  36.             $return .= '</tr><tr>';
  37.         }
  38.         for($i=0; $i<$cols; $i++){
  39.             #En esta iteración podes manejar de manera personalizada datos, por ejemplo:
  40.            if($cols_names[$i] == 'fechaAlta'){ #Fromateo el registro en formato Timestamp
  41.                $return .= '<td>'.htmlspecialchars(date('d/m/Y H:i:s',$rs[$i])).'</td>';
  42.             }else if($cols_names[$i] == 'activo'){ #Estado lógico del registro, en vez de 1 o 0 le muestro Si o No.
  43.                $return .= '<td>'.htmlspecialchars( $rs[$i]==1? 'SI':'NO' ).'</td>';
  44.             }else{
  45.                 $return .= '<td>'.htmlspecialchars($rs[$i]).'</td>';
  46.             }
  47.         }
  48.         $return .= '</tr>';
  49.     }
  50.     $return .= '</table>';
  51. }
  52. #Cambiando el content-type más las <table> se pueden exportar formatos como csv
  53. header("Content-type: application/vnd-ms-excel; charset=iso-8859-1");
  54. header("Content-Disposition: attachment; filename=NombreDelExcel_".date('d-m-Y').".xls");
  55. echo $return;
  #6 (permalink)  
Antiguo 06/03/2013, 12:21
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Exportar de mysql a excel

Sinceramente espero equivocarme, pero me parece que esto será otro copy/paste sin aprendizaje, el usuario recibió un par de opciones y bastaba con preguntarle a san google para llegar a resultados como el proporcionado por evolutionrgm, de quien no tengo duda que lo hizo con la mejor de las intenciones, pero alentando esa falta de iniciativa.

En fin, espero equivocarme.
__________________
- León, Guanajuato
- GV-Foto
  #7 (permalink)  
Antiguo 07/03/2013, 05:53
Avatar de JeMaGa  
Fecha de Ingreso: julio-2011
Ubicación: Bogota
Mensajes: 430
Antigüedad: 12 años, 9 meses
Puntos: 4
Respuesta: Exportar de mysql a excel

La respuesta y lo que necesitaba no lo encontre en google, busque y mi ultima opcion era el foro, ya que hay me explicaban y me ayudaban a solucionar mi pregunta, mis necesidades!!, y los foros son para eso para guiarse para aprender, uno por la respuesta que me dio evolutionrgm eso ya biene de la persona si solo la copia y no la entiende!, pero primero tiene que funcionar para que uno entienda que funcion cumple. :)
  #8 (permalink)  
Antiguo 07/03/2013, 15:44
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Exportar de mysql a excel

Primero tiene que funcionar para entenderlo?

No quiero imaginar lo que pasaría si, en lugar de la buena voluntad de evolutionrgm, te hubieran pasado código para borrar tus archivos y ese es uno de los riesgos de copiar/pegar, sin analizar ni entender lo que vas a probar.

Por cierto, si a san google le preguntas "php mysql exportar a excel" encuentras gran cantidad de tutoriales y no entiendo como pasó esto:

Cita:
La respuesta y lo que necesitaba no lo encontre en google, busque y mi ultima opcion era el foro...
Definitivamente el foro está para ayudar a quienes quieren aprender, lo malo es que muchos usuarios sólo quieren solventar su problema y no les interesa el aprendizaje, ni complicarse un poco buscando por ellos mismos.
__________________
- León, Guanajuato
- GV-Foto
  #9 (permalink)  
Antiguo 08/03/2013, 00:18
 
Fecha de Ingreso: enero-2002
Mensajes: 1.174
Antigüedad: 22 años, 3 meses
Puntos: 21
Respuesta: Exportar de mysql a excel

Hola Tribi,

Sería de mucha utilidad si le puedes dar un link de por donde iniciar a buscar.
Sería mejor para él, además otros muchos usuarios se beneficiarían.
Todo, absolutamente todo se encuentra en google, así que entonces ¿para que existir estos foros?
Ayúda si lo puedes y quieres hacer, sino... pos no.

Disculpa.
  #10 (permalink)  
Antiguo 08/03/2013, 17:45
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Exportar de mysql a excel

Bier, respondo cada punto por separado:

Sería de mucha utilidad si le puedes dar un link de por donde iniciar a buscar.

Cuando se trata de temas generales, es posible que el usuario no sepa cómo iniciar la búsqueda, entonces aporto los términos y/o nombres de librerías a buscar.

Por otra parte, si es algo de cierta complicación y que sabemos no es tan fácil de encontrar o entender, busco y trato de facilitar un enlace a información específica, incluso, algo de código si lo tengo a la mano.

Sería mejor para él, además otros muchos usuarios se beneficiarían.

Te aseguro que para los usuarios que realmente desean aprender les basta y sobra con un par de sugerencias sobre lo que debe hacer y, cuando se dan cuenta de que es algo complicado, después regresan para contarnos cómo lo solucionaron y ahí realmente hay beneficio para todos.

Todo, absolutamente todo se encuentra en google, así que entonces ¿para que existir estos foros?

En mi opinión, los foros existen para ayudar a otros para que aprendan a resolver sus dudas, no para resolverlas nosotros mientras ellos sólo esperan un link o código para copiar y pegar.

Ayúda si lo puedes y quieres hacer, sino... pos no.

Si no quisiera ayudar, ten por seguro que no habría sugerido una librería ni mencionado los detalles y posibles soluciones.

Entiendo tu postura, tal vez crees que soy uno de esos "odiosos que no quieren compartir conocimiento" y, te diré, mi conocimiento es muy limitado, pero me gusta pensar que puede ser útil para otros y, después de algunos años foreando, me dí cuenta que:

1- Si un usuario no se toma la molestia de buscar primero, tampoco lo hará para entender lo que le explicas.
2- Quienes reciben "código hecho" como respuesta rara vez lo entienden y seguramente regresarán al foro, buscando otro "código hecho" para un problema similar.
3- Se obtiene una gran satisfacción cuando otros aprenden algo, aunque sea muy pequeño, con el tiempo (poco o mucho) que les dedicaste para una respuesta.
__________________
- León, Guanajuato
- GV-Foto

Etiquetas: excel, mysql, 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 17:13.