/ / Problemas de memória durante a conversão de um grande volume de arquivo XLSX para CSV com POI - java, performance, excel, apache-poi

Problemas de memória durante a conversão de um grande volume de arquivo XLSX para CSV com POI - java, performance, excel, apache-poi

Esta é uma tarefa muito desafiadora para mim como eu soufazendo praticamente R & D para se livrar de OutOfMemroyError durante a conversão de XLSX para CSV e meu arquivo excel pode ter três folhas e cada folha com 60000 linhas. Eu usei XSSF e SAX (Event API) recentemente, pois essa abordagem consome muito menos memória. No entanto, a API de eventos está acionando eventos apenas para coisas realmente armazenadas no arquivo e isso pode ser causa para mim.

Anteriormente a essa abordagem de API de eventos, eu usei a classe Workbook para processar o arquivo XLSX e, eventualmente, estou ficando sem memória durante a criação da pasta de trabalho fornecida abaixo.

Pasta de trabalho do livro = WorkbookFactory.create (new File ("myfile.xlsx"));

Então, qual é a melhor maneira de processar grandes volumes de dados XLSX com o apache POI?

Respostas:

1 para resposta № 1

Aqui está um exemplo para ler um arquivo xls grande usando o analisador de saxofone. O analisador de Sax ajudará você a evitar as exceções do OOM.

Erro ao ler arquivos grandes do Excel (xlsx) via Apache POI