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 № 1Aqui 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