Foros del Web » Programando para Internet » PHP »

Problema al guarda tabla HTML a xls

Estas en el tema de Problema al guarda tabla HTML a xls en el foro de PHP en Foros del Web. Hola me surgio el siguiente problema tengo hecho un script por asi llamarlo que me retorna una consulta en la BD imprime una tabla HTML ...
  #1 (permalink)  
Antiguo 26/06/2010, 10:24
 
Fecha de Ingreso: marzo-2009
Mensajes: 76
Antigüedad: 15 años, 8 meses
Puntos: 1
Problema al guarda tabla HTML a xls

Hola me surgio el siguiente problema tengo hecho un script por asi llamarlo que me retorna una consulta en la BD imprime una tabla HTML y me guarda el resultado en un xls, hasta ahi todo bien genero la consulta, se arma la tabla y guarda el XLS, el problema viene ahora.... vieron cuando descargamos un archivo tenemos dos opciones
ABRIR CON (Alguna aplicacion)
GUARDAR ARCHIVO
Bueno si uso el Abrir con me funciona perfecto, el problema ocurre cuando doy en la opcion GUARDAR ARCHIVO ya que me lo guarda al archivo pero una vez descargado en la solapa de descarga de mi navegador le doy ABRIR y me manda a realizar la operacion nuevamente.... es decir me aparece la ventanita de
ABRIR CON (Alguna aplicaion)
GUARDAR ARCHIVO.
Pero si voy a la carpeta de descarga y abro el archivo funcion perfecto, alguien sabe por que pasa eso???

Desde ya gracias y les dejo un simplificacion del codigo de ejemplo... y les pongo los headers que creo que es lo importante ya que lo otro no es nada raro, simplemente una consulta y mostrar el resultado en una tabla.
Código PHP:
<?php
// tengo unas clases que incluyo //
header('Content-type: application/vnd.ms-excel');
header("Content-Disposition: attachment; filename=archivo.xls");
header("Pragma: no-cache");
header("Expires: 0");
// realiza la operacion y me traigo el resultado //
?>
<html>
<title>
</title>
<body>
// con el resultado y un foreach armo la tabla//
</body>
</html>

Gracias y Saludos.

NicoStone.
  #2 (permalink)  
Antiguo 26/06/2010, 12:16
Avatar de wiwi74  
Fecha de Ingreso: marzo-2008
Mensajes: 515
Antigüedad: 16 años, 8 meses
Puntos: 10
Respuesta: Problema al guarda tabla HTML a xls

Si el navegador no ejecuta el script, o sea no puede mostrarte el resultado, te dara la opcion de qué hacer con él.

Luego, simplemente se repite el siclo.

Última edición por wiwi74; 26/06/2010 a las 12:28
  #3 (permalink)  
Antiguo 26/06/2010, 12:49
 
Fecha de Ingreso: marzo-2009
Mensajes: 76
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: Problema al guarda tabla HTML a xls

Creo que no se entendio bien el script funciona a la perfeccion ya que lo guarda correctamentes y lo puedo ver, el tema es que viste en la pantalla de DESCARGA que te abre el navegador que te muestra el proceso o cuanto va de la descarga... bueno una vez que finaliza... tenes las opciones abrir (para abrir el archivo) y abrir carpeta (que te lleva a la carpeta contenedora del archivo, es decir donde tenes seteado que vayan tus descargas) .
Bueno si uso la opcion ABRIR desde la pagina que te muestra el proceso de la descarga, intenta iniciar el proceso nuevamente.
Si voy a ABRIR CARPETA y voy a la carpeta contenedora y lo abro como cualquier otro archivo funciona a la perfeccion.
El problema es ese, es decir en la pagina que muestra el proceso de la descarga que abre el navegado... una vez terminada la descarga... no le puedo dar a la opcion abrir ya que intenta iniciar el proceso nuevamente.... es como que guarda el link donde se ejecuta el script que genera el xls y no el link o ruta o direccion donde ha descargado el archivo..... es simplemente ese mi problema.

Gracias por responder.

Saludos.

NicoStone.
  #4 (permalink)  
Antiguo 26/06/2010, 16:48
Avatar de wiwi74  
Fecha de Ingreso: marzo-2008
Mensajes: 515
Antigüedad: 16 años, 8 meses
Puntos: 10
Respuesta: Problema al guarda tabla HTML a xls

Podrias postear esa url final, resultado de crear el archivo... Que te lleba a descargar el xls.

Otra pregunta (asi salgo del escepticismo): Estas usando fopen() y fwrite() para crear el xls.
  #5 (permalink)  
Antiguo 26/06/2010, 19:17
 
Fecha de Ingreso: marzo-2009
Mensajes: 76
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: Problema al guarda tabla HTML a xls

Nop todo lo que esta en el post es lo que estoy usando... estoy en otra pagina donde hay un link te envia a la otra pagina que es del codigo que esta en el post y con los headers se encarga de guarda la tabla con formato .xls.

En cuando a lo otro es decir lo del link en estos momentos no estoy en mi casa y no puedo acceder a la PC ya que la apage.... mañana te lo posteo todo completo si quieres... muchas gracias wiwi74

Muchas gracias wiwi74!!!!

Saludos.

NicoStone.

Aqui esta el codigo como prometi... creoo que cambie los headers pero sigue pasando lo mismo que explique anteriormente.
Yo calculo que el problema esta en los HEADERS.... pero bueno cualquier ayuda sera muy muy muy bienvenidaaaaaaaa!!!!!

Código HTML:
Ver original
  1. <?php
  2. require("../Servicios/class.DataModel.php");
  3. require("../Servicios/class.ModelProducto.php");
  4. header("Pragma: public");
  5. header("Expires: 0");
  6. header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
  7. header("Content-Type: application/force-download");
  8. header("Content-Type: application/octet-stream");
  9. header("Content-Type: application/download");;
  10. header("Content-Disposition: attachment;filename=ListadoProductos.xls");
  11. header("Content-Transfer-Encoding: binary ");
  12. $modelProducto = new ModelProducto();
  13. $resultado = $modelProducto->listarProdcutosParaExel();
  14. ?>
  15. <?php
  16. echo "<table border=1> ";
  17. echo "<tr> ";
  18. echo "<th align='center'>Codigo</th> ";
  19. echo "<th align='center'>Proveedor</th> ";
  20. echo "<th align='center'>Categoria</th> ";
  21. echo "<th align='center'>Producto</th> ";
  22. echo "<th align='center'>Medidas</th> ";
  23. echo "<th align='center'>Precio Unitario</th> ";
  24. echo "<th align='center'>Precio Por Bulto</th> ";
  25. echo "</tr> ";
  26. foreach($resultado as $row){
  27.     echo "<tr> ";
  28.         echo "<td align='center'>".$row['Codigo']."</td> ";
  29.         echo "<td align='center'>".$row['Proveedor']."</td> ";
  30.         echo "<td align='center'>".$row['Categoria']."</td> ";
  31.         echo "<td align='center'>".$row['Producto']."</td> ";
  32.         echo "<td align='center'>".$row['Medidas']."</td> ";
  33.         echo "<td align='center'>".$row['PrecioUnitario']."</td> ";
  34.         echo "<td align='center'>".$row['PrecioPorBulto']."</td> ";
  35.     echo "</tr> ";
  36. }
  37. echo "</table> ";
  38. ?>
  39. </body>
  40. </html>

Última edición por nicostone; 27/06/2010 a las 11:59
  #6 (permalink)  
Antiguo 27/06/2010, 12:59
Avatar de wiwi74  
Fecha de Ingreso: marzo-2008
Mensajes: 515
Antigüedad: 16 años, 8 meses
Puntos: 10
Respuesta: Problema al guarda tabla HTML a xls

Si tienes un poco de paciencia puedes hacer unas pruebas:

Código PHP:

/*
aqui pones la extencion del archivo que deseas descargar del servidor
ese archivo debe estar en el mismo directiorio que este script
llama a ese archivo "original" 
(prueba con archivos de diferente formato -llamados "original"-
 que funcionen y cuyo soft poseas para abrirlo)
*/

$ext "php";

//EJEMPLO HEADERS
header('Content-type: application/'.$ext.'');
// nombre que le dara al guardarlo
header('Content-Disposition: attachment; filename="downloaded.'.$ext.'"');
// archivo original a descargar
readfile('original.'.$ext.''); 
Esto te permitira ver que es lo que sucede...
Cuando le des click al link, se abrira con el soft correspondinete. Lo probe en chrome.

Tu problema con el archivo xls es que quiza tu no tienes instalado el soft que corresponda... o que quiza no lo estes generando correctamente.

Me tengo que ir... asi que no puedo seguir, luego investigo mas...

Última edición por wiwi74; 27/06/2010 a las 14:53
  #7 (permalink)  
Antiguo 27/06/2010, 13:03
Avatar de wiwi74  
Fecha de Ingreso: marzo-2008
Mensajes: 515
Antigüedad: 16 años, 8 meses
Puntos: 10
Respuesta: Problema al guarda tabla HTML a xls

Pero si estas apurado y no te gusta mi aporte, y no aporta nadie mas...

Mira esto:

http://blog.unijimpe.net/generar-excel-con-php/
  #8 (permalink)  
Antiguo 28/06/2010, 06:44
 
Fecha de Ingreso: marzo-2009
Mensajes: 76
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: Problema al guarda tabla HTML a xls

Bueno es estado probando y era el Sistema operativo ya que en windows funciona, pero ahora me encontre con otro problemita... me dice que
"el archivo que intenta abrir tiene otro formato que el especificado por la extension del archivo."... lei y algunos lo han solucionando el charset... cambia el charset en los headers pero sigo igual.. mil gracias WIWI74... seguire leyendo un poco mas para ver si encuentro la solucion y poder postearla aqui para que quede y sino intentare descargando alguna clase de por ahi.

Gracias WIWI74!!!!


Saludos.

NicoStone.

Última edición por nicostone; 28/06/2010 a las 10:00

Etiquetas: html, xls, tablas
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 08:07.