Próbuję odczytać duże pliki Excela xlsx za pośrednictwem Apache POI, na przykład 40-50 MB. Występuje wyjątek pamięci. Aktualna pamięć sterty to 3 GB.Błąd podczas odczytywania dużych plików Excel (xlsx) Via Apache POI
Potrafię czytać mniejsze pliki programu Excel bez żadnych problemów. Potrzebuję sposobu, aby przeczytać duże pliki Excela, a następnie z powrotem jako odpowiedź za pośrednictwem Spring Excel.
public class FetchExcel extends AbstractView {
@Override
protected void renderMergedOutputModel(
Map model, HttpServletRequest request, HttpServletResponse response)
throws Exception {
String fileName = "SomeExcel.xlsx";
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
OPCPackage pkg = OPCPackage.open("/someDir/SomeExcel.xlsx");
XSSFWorkbook workbook = new XSSFWorkbook(pkg);
ServletOutputStream respOut = response.getOutputStream();
pkg.close();
workbook.write(respOut);
respOut.flush();
workbook = null;
response.setHeader("Content-disposition", "attachment;filename=\"" +fileName+ "\"");
}
}
zaczynałem wyłączyć za pomocą XSSFWorkbook workbook = new XSSFWorkbook(FileInputStream in);
ale to kosztowne za Apache POI API, więc przeszedłem do OPC pakietu sposób, ale nadal ten sam efekt. Nie muszę analizować ani przetwarzać pliku, po prostu go odczytać i zwrócić.
Spróbuj SXSSF http://poi.apache.org/spreadsheet/index.html – Alfabravo
muszę przykład. Przeszukuję sieć, ale nie mogę znaleźć przykładu do czytania dużych arkuszy za pośrednictwem SXSSF, w przeciwnym razie nie zadałbym pytania na pierwszym miejscu. – jamesT
@jamesT uruchomiłeś tę opcję? -Xms1024M -Xmx2048M – chrome