Foros del Web » Programando para Internet » PHP »

Archivo Excel ocupa demasiado expacio

Estas en el tema de Archivo Excel ocupa demasiado expacio en el foro de PHP en Foros del Web. Que tal! este es mi primer post para solicitar ayuda, normalmente buscando, encontraba la solucion a mis problemas, pero a este no le he encontrado. ...
  #1 (permalink)  
Antiguo 26/03/2010, 13:02
 
Fecha de Ingreso: noviembre-2008
Mensajes: 6
Antigüedad: 15 años, 5 meses
Puntos: 0
Archivo Excel ocupa demasiado expacio

Que tal! este es mi primer post para solicitar ayuda, normalmente buscando, encontraba la solucion a mis problemas, pero a este no le he encontrado.

Resulta que genero un archivo xls para que mis usuarios lo descarguen, lo hago con headers basado en una tabla dinamica que se llena de la BD en MySQL, lo genero y lo puedo abrir, hasta ahi todo bien.

El problema, es que el tamaño de los xls generados es muy grande, por ejemplo, un reporte con 4,976 registros y alrededor de 90 columnas, pesa 23.3 mb, lo mas raro, es que si lo abro y lo vuelvo a guardar, ya solamente pesa 5 mb sin modificarle nada, quisiera que asi guardara de un inicio, alguien sabe porque?

estos son los headers que utilizo:

header("Content-type: application/vnd.ms-excel; name='excel'");
header("Content-Disposition: filename=$filename");
header("Pragma: no-cache");
header("Expires: 0");

Cualquier ayuda o comentario, sera bienvenido.

Saludos!!
  #2 (permalink)  
Antiguo 26/03/2010, 15:09
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Archivo Excel ocupa demasiado expacio

Lo que pasa es que al usar ese método para exportar, realmente estas exportando un archivo html, y excel lo interpreta y lo parsea en su formato interno.

Lo que tienes que hacer es usar una clase como PEAR Excel Writer para escribir el archivo pero directamente en el formato binario de excel y no como html.

Saludos.

Etiquetas: excel
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 09:35.