Ver Mensaje Individual
  #3 (permalink)  
Antiguo 05/03/2014, 17:37
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 11 años, 4 meses
Puntos: 379
Respuesta: PHPExcel: Lectura fichero XLS de muchos registros lenta

Aparte de comprimir el archivo para reducir el tiempo necesario para subir el archivo, debes de considerar algunas cosas.
Leer la hoja o las hojas que necesitas:
Código PHP:
Ver original
  1. $objReader = new PHPExcel_Reader_Excel5();
  2. $objReader->setLoadSheetsOnly( array("Sheet 1", "Sheet 2") );
  3. $objPHPExcel = $objReader->load("test.xls");

acceder a las celdas que necesitas implementando PHPExcel_Reader_IReadFilter
Código PHP:
Ver original
  1. class MyReadFilter implements PHPExcel_Reader_IReadFilter {
  2.  
  3.     public function readCell($column, $row, $worksheetName = '') {
  4.         // Read title row and rows 20 - 30
  5.         if ($row == 1 || ($row >= 20 && $row <= 30)) {
  6.             return true;
  7.         }
  8.         return false;
  9.     }
  10. }
  11.  
  12. $objReader = new PHPExcel_Reader_Excel5();
  13. $objReader->setReadFilter( new MyReadFilter() );
  14. $objPHPExcel = $objReader->load("test.xls");

Y por ultimo tambien puedes hacer cacheo de celdas con sqlLite usando; PHPExcel_CachedObjectStorageFactory::cache_to_sqli te3
Código PHP:
Ver original
  1. $cacheMethod = PHPExcel_CachedObjectStorageFactory::cache_to_sqlite3;
  2. PHPExcel_Settings::setCacheStorageMethod($cacheMethod);

Sobra decir que todo esto esta explicado en la documentacion en si sitio oficial: http://phpexcel.codeplex.com/documentation
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.