Foros del Web » Programando para Internet » PHP »

problema al generar excel con php,mysql y spreadsheets

Estas en el tema de problema al generar excel con php,mysql y spreadsheets en el foro de PHP en Foros del Web. hola-- saludos-- mi probleama es el siguiente. Estoy generando un archivo axcel apartir de una consulta en mysql, utilizo spreadsheets(excelwriter) de pear para generarlo. La ...
  #1 (permalink)  
Antiguo 07/04/2010, 01:00
 
Fecha de Ingreso: abril-2010
Mensajes: 1
Antigüedad: 11 años, 2 meses
Puntos: 0
problema al generar excel con php,mysql y spreadsheets

hola-- saludos--
mi probleama es el siguiente. Estoy generando un archivo axcel apartir de una consulta en mysql, utilizo spreadsheets(excelwriter) de pear para generarlo. La consulta me devuelve 20 campos con un aproximado de 1000 a 38000 registros. El problema es que hasta los 3000 registros el excel se genera en un tiempo razonable,de 2 minutos a 2 minutos y medio, pasando los 3000 registros el archivo se tarda de 10 minutos en adelante en generarse.Ya probe la consulta imprimiendo los resultados en una pagina y tarda aproximadamente 8segundos mostrando 35000 registros, pienso que la consulta no es el problema, he cambiado el tiempo de ejecucion del php.ini a 90s el limite de memoria a 256M y no funciona, no se que sea, tal ves no este generando bien el archivo, aunque lo abre bien. Mi maquina 2.4gb en ram y un procesador a 2.4Ghz, asi que no creo que sea mi maquina, llevo tiempo con esto y no encuentro solución alguna, agradesco me hechen una ayudadita.

aqui dejo un script rustico esta es la base de como genero los datos, el cual se tarda demaciado en mi caso


<?PHP
require_once 'Spreadsheet/Excel/Writer.php';
$doc_xls=new Spreadsheet_Excel_Writer();
$libro=& $doc_xls->addWorksheet('Libro de prueba');
ini_set("memory_limit", "100M"); //amplio memoria disponible para la ejecucion
set_time_limit(0); // elimino el tiempo limite
//AGREFO UN FORMATO
$format_head=& $doc_xls->addFormat();
$format_head->setBold();
$format_head->setSize(12);
$format_head->setColor('white');
$format_head->setFgColor('black');
$format_head->setAlign('center');
$format_head->setPattern(1);
//=======
$format_body=& $doc_xls->addFormat();
$format_body->setBold();
$format_body->setBorderColor('black');
$format_body->setLeft(1);
$format_body->setRight(1);
$format_body->setBottom(1);
$format_body->setTop(1);
//$format_body->setBorder();
for($c=0;$c<22;$c++){
$libro->setColumn(0,$c,26);
}
for($c=0;$c<22;$c++){
$libro->write(1,$c,"HEAD ".($c+1),$format_head);
}
for($f=2;$f<10000;$f++){
for ($c=0;$c<22;$c++){
$libro->write($f,$c,'datos de prueba '.$c,$format_body);
}
}
$doc_xls->send('prueba_excel.xls');
$doc_xls->close();
?>


gracias por su atencion de antemano.

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