wyjątek java.lang.outofmemory podczas odczytywania pliku Excel (xlsx) przy użyciu POI
Zajmuję się tworzeniem aplikacji internetowej, która odczytuje dane z pliku Excela (xlsx). Używam POI do czytania arkusza Excela. Problem polega na tym, że próbuję odczytać plik Excela, serwer zgłasza następujący błąd:
Plik programu Excel, który próbuję odczytać, ma rozmiar prawie 80 MB. Jakieś rozwiązanie tego problemu?
Właściwie użytkownik przesyła plik i aplikacja po zapisaniu pliku na dysku spróbuje odczytać plik. Fragment kodu, którego używam do testowania, to:
File savedFile = new File(file_path);
FileInputStream fis = null;
try {
fis = new FileInputStream(savedFile);
XSSFWorkbook xWorkbook = new XSSFWorkbook(fis);
XSSFSheet xSheet = xWorkbook.getSheetAt(5);
Iterator rows = xSheet.rowIterator();
while (rows.hasNext()) {
XSSFRow row = (XSSFRow) rows.next();
Iterator cells = row.cellIterator();
List data = new ArrayList();
while (cells.hasNext()) {
XSSFCell cell = (XSSFCell) cells.next();
System.out.println(cell.getStringCellValue());
data.add(cell);
}
}
} catch (IOException e) {
e.printStackTrace();
}