Olá. Boa tarde
Estou com problemas no uso da PHPExcel quando leio um XLSX grande. Para arquivos menores não tenho problemas.
Sc 9.0.004 - PHP 7 tanto no desenvolvimento quanto na produção
servidor windows server 2012
BD MSSQL 2014
O upload vai bem. A velocidade de upload não chega a impactar. Meu arquivo teste tem 35 megas. Os tamanhos vão variar por volta disso muitas vezes em produção. Por isso preciso testar com arquivo deste tamanho.
Mas quando começa a processar eu monitoro o servidor e o uso de memória vai subindo até atingir 100% e trava. Então tenho que reiniciar o servidor.
Pelo que vi nas pesquisas o PHPExcel é uma excelente biblioteca mas usa muita memória.
https://stackoverflow.com/questions/16667376/phpexcel-memory-still-exhausted-even-with-cell-caching-other-solutions
Inclusive vendo a documentação uso:
$cacheMethod = PHPExcel_CachedObjectStorageFactory::cache_to_phpTemp;
$cacheSettings = array( 'memoryCacheSize' => '8MB');
PHPExcel_Settings::setCacheStorageMethod($cacheMethod, $cacheSettings);
Para tentar fazer com que o PHPExcel use cache em disco e não em memória. Mesmo assim o resultado foi o mesmo.
Nas minhas pesquisas encontrei o Spout. Uma biblioteca que se fizer o que promete resolve meu problema. (veja no link). No entanto não consegui usar fazendo o que a documentação manda. Já adicionei bibliotecas de terceiros mas essa está difícil de eu conseguir funcionar com o SC.
http://opensource.box.com/spout/
Então meus questionamentos são:
- Alguém teve problemas de memória usando PHPExcel na importação de arquivos grandes ?
- Alguém já ouviu falar do SPOUT ? No fórum scriptcase.net tem alguma coisa mas não tive respostas ainda.
- Alguém poderia me ajudar a pelo menos fazer essa Spout funcionar para que eu possa saber se resolve ou nao ?
Obrigado
Jairo