Tengo un problemilla, que no he podido solucionar y ya me tiene un poco
Les explico :
Tengo una consulta SQL que me arroja por ejemplo 30.000 registros, cuando trato de exportar todo con PHPExcel se revienta por memoria.
Lo que hago es insertar cada 10.000 registros al archivo de excel hasta terminar... para esto uso algo parecido a un limit o un between donde le indico el rango de registros (Ej: 0 - 10000 , 11000 - 20000 , 21000 - 30000 ) , etc.....
Por cada vez que consulto los rangos abro el archivo de Excel y proceso la insercion....
Bueno un poco de codigo :
Código PHP:
Ver original
//abrimos el archivo de excel $objPHPExcel = PHPExcel_IOFactory::load($this->carpetaFiles.$nomExcel); //$objPHPExcel->setActiveSheetIndex(0); $objWorksheet = $objPHPExcel->getActiveSheet(); //insertar registros $letrasColumnas = $this->ci->nativesession->getData("reportev","letrasColumnas");//esto es un arreglo con el numero de letras (nroColumnas) foreach ($dataTabla AS $registro) { $c=0;//incrementador para las columnas //recorremos las columnas foreach ($registro AS $fila) { $fila = $this->arreglo_tildes($fila); $objWorksheet->SetCellValue($letrasColumnas[$c].$i,$fila);// aca insertamos los datos por ejemplo A1 B1 , etc. $c++; } $i++; }//fin foreach datos //Finalmente lo guardo $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); $objWriter->save($this->carpetaFiles.$nomExcel);
Esto funciona y no funciona, cuando abro el archivo me encuentro con 2 Hojas Mas , cada una tiene 10.000 registros (todos son iguales); y la primer hoja perfecto porque me aparecen los 30.000...
Pero el proceso se revienta por tiempo de ejecución .....
Es muy raro, he intentado y he buscado pero no encuentro la causa.....