Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Al exportar MySQL a excel con PHP se cambian las celdas

Estas en el tema de Al exportar MySQL a excel con PHP se cambian las celdas en el foro de PHP en Foros del Web. Hola Necesito ayuda tengo mi código para exportar desde mysql a excel con php funciona muy bien pero el problema esta en que si en ...
  #1 (permalink)  
Antiguo 10/04/2013, 17:20
Avatar de myllie  
Fecha de Ingreso: marzo-2012
Mensajes: 10
Antigüedad: 12 años, 8 meses
Puntos: 1
Información Al exportar MySQL a excel con PHP se cambian las celdas

Hola

Necesito ayuda tengo mi código para exportar desde mysql a excel con php funciona muy bien pero el problema esta en que si en la base de datos se introduce texto que contenga enter o espacios entre párrafos al generar el excel los párrafos que están separados me los muestra en otra celda y me deforma el excel.

Que puedo hacer??? Espero haberme explicado, les dejo el código

Código PHP:
Ver original
  1. <?php
  2.  
  3. require('conexion.php');
  4.  
  5. //seleccionamos lo que queremos exportar
  6. $res = mysql_query("SELECT * FROM table where campo = 'campo' ORDER BY campo ASC");
  7. while($data = @mysql_fetch_assoc($res)){
  8.  
  9.  
  10. $contenido .= "\t".utf8_decode($data['textos']);
  11. $contenido .= "\t".utf8_decode($data['textos']);
  12. $contenido .= "\t".utf8_decode($data['textos']);
  13. $contenido .= "\t".($data['textos']);
  14. $contenido .= "\t".($data['textos']);
  15. }
  16.  
  17. //cabecera del archivo
  18. $cabezera="TEXTOS\tTEXTOS\tTEXTOS\tTEXTOS\tTEXTOS\n";
  19.  
  20. //ruta y nombre donde se guardara el archivo
  21. $nombre = "textos.xls";
  22. $url="archivos/".$nombre;
  23.  
  24. //abrimos el archivo en escritura
  25. $p=fopen("$url","w");
  26.  
  27. if($p){
  28. //escribimos el contenido
  29. fputs($p,$cabezera);
  30. fputs($p,$contenido);
  31. }
  32.  
  33. //cerramos el archivo
  34. fclose($p);
  35.  
  36. echo("<a href=".$url.">Descarga archivo en excel</a>");
  37.  
  38. ?>

Saludos
  #2 (permalink)  
Antiguo 10/04/2013, 17:32
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años, 6 meses
Puntos: 528
Respuesta: Al exportar MySQL a excel con PHP se cambian las celdas

Esto es por que no estás exportando a verdadero excel.

Para no cambiar tu código, tendrías que eliminar los tabuladores de tu texto:

$contenido .= "\t".utf8_decode($data['textos']);

$contenido .= "\t".utf8_decode(str_replace("\t",'',$data['textos']));
  #3 (permalink)  
Antiguo 10/04/2013, 19:54
Avatar de luis010182  
Fecha de Ingreso: julio-2009
Ubicación: Argentina - Capital Federal
Mensajes: 382
Antigüedad: 15 años, 4 meses
Puntos: 27
Respuesta: Al exportar MySQL a excel con PHP se cambian las celdas

lo mas sencillo es usar un clase, por ejemplo phpExcel

http://phpexcel.codeplex.com/wikipag...ringTitle=Home
  #4 (permalink)  
Antiguo 11/04/2013, 09:08
Avatar de myllie  
Fecha de Ingreso: marzo-2012
Mensajes: 10
Antigüedad: 12 años, 8 meses
Puntos: 1
Respuesta: Al exportar MySQL a excel con PHP se cambian las celdas

Cita:
Iniciado por myllie Ver Mensaje
Hola

Necesito ayuda tengo mi código para exportar desde mysql a excel con php funciona muy bien pero el problema esta en que si en la base de datos se introduce texto que contenga enter o espacios entre párrafos al generar el excel los párrafos que están separados me los muestra en otra celda y me deforma el excel.

Que puedo hacer??? Espero haberme explicado, les dejo el código

Código PHP:
Ver original
  1. <?php
  2.  
  3. require('conexion.php');
  4.  
  5. //seleccionamos lo que queremos exportar
  6. $res = mysql_query("SELECT * FROM table where campo = 'campo' ORDER BY campo ASC");
  7. while($data = @mysql_fetch_assoc($res)){
  8.  
  9.  
  10. $contenido .= "\t".utf8_decode($data['textos']);
  11. $contenido .= "\t".utf8_decode($data['textos']);
  12. $contenido .= "\t".utf8_decode($data['textos']);
  13. $contenido .= "\t".($data['textos']);
  14. $contenido .= "\t".($data['textos']);
  15. }
  16.  
  17. //cabecera del archivo
  18. $cabezera="TEXTOS\tTEXTOS\tTEXTOS\tTEXTOS\tTEXTOS\n";
  19.  
  20. //ruta y nombre donde se guardara el archivo
  21. $nombre = "textos.xls";
  22. $url="archivos/".$nombre;
  23.  
  24. //abrimos el archivo en escritura
  25. $p=fopen("$url","w");
  26.  
  27. if($p){
  28. //escribimos el contenido
  29. fputs($p,$cabezera);
  30. fputs($p,$contenido);
  31. }
  32.  
  33. //cerramos el archivo
  34. fclose($p);
  35.  
  36. echo("<a href=".$url.">Descarga archivo en excel</a>");
  37.  
  38. ?>

Saludos


Muchas gracias por tu respuesta si me reemplaza pero aun me aparece en diferentes celdas ¿Que puedo hacer?
  #5 (permalink)  
Antiguo 11/04/2013, 09:17
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años, 7 meses
Puntos: 47
Respuesta: Al exportar MySQL a excel con PHP se cambian las celdas

Cita:
Iniciado por luis010182 Ver Mensaje
lo mas sencillo es usar un clase, por ejemplo phpExcel

http://phpexcel.codeplex.com/wikipag...ringTitle=Home
Ocupa esta clase
  #6 (permalink)  
Antiguo 11/04/2013, 09:55
Avatar de myllie  
Fecha de Ingreso: marzo-2012
Mensajes: 10
Antigüedad: 12 años, 8 meses
Puntos: 1
Respuesta: Al exportar MySQL a excel con PHP se cambian las celdas

Muchas gracias por sus respuestas ya me funciono solo era cuestión de agregarle \r, les dejo el código:

Código PHP:
Ver original
  1. <?php
  2.  
  3. require('conexion.php');
  4.  
  5. //seleccionamos lo que queremos exportar
  6. $res = mysql_query("SELECT * FROM table where campo = 'campo' ORDER BY campo ASC");
  7. while($data = @mysql_fetch_assoc($res)){
  8.  
  9.  
  10. $contenido .= "\t".utf8_decode(str_replace("\r\n","",$data[textos']);
  11. $contenido .= "\t".utf8_decode(str_replace("\r\n","",$data[textos']);
  12. $contenido .= "\t".utf8_decode(str_replace("\r\n","",$data[textos']);
  13. $contenido .= "\t".($data['textos']);
  14. $contenido .= "\t".($data['textos']);
  15. }
  16.  
  17. //cabecera del archivo
  18. $cabezera="TEXTOS\tTEXTOS\tTEXTOS\tTEXTOS\tTEXTOS\n";
  19.  
  20. //ruta y nombre donde se guardara el archivo
  21. $nombre = "textos.xls";
  22. $url="archivos/".$nombre;
  23.  
  24. //abrimos el archivo en escritura
  25. $p=fopen("$url","w");
  26.  
  27. if($p){
  28. //escribimos el contenido
  29. fputs($p,$cabezera);
  30. fputs($p,$contenido);
  31. }
  32.  
  33. //cerramos el archivo
  34. fclose($p);
  35.  
  36. echo("<a href=".$url.">Descarga archivo en excel</a>");
  37.  
  38. ?>

Etiquetas: excel, mysql+php
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 14:44.