Sto cercando di leggere file excel di grandi dimensioni xlsx tramite POI Apache, ad esempio 40-50 MB. Sto uscendo dall'eccezione di memoria. La memoria heap corrente è 3 GB.Errore durante la lettura di file Excel di grandi dimensioni (xlsx) Via Apache POI
Sono in grado di leggere file Excel più piccoli senza problemi. Ho bisogno di un modo per leggere file excel di grandi dimensioni e poi di restituirli come risposta tramite Spring excel view.
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+ "\"");
}
}
ho iniziato fuori usando XSSFWorkbook workbook = new XSSFWorkbook(FileInputStream in);
ma che era costoso per Apache POI API, quindi commutato OPC pacchetto modo ma ancora lo stesso effetto. Non ho bisogno di analizzare o elaborare il file, basta leggerlo e restituirlo.
Prova SXSSF http://poi.apache.org/spreadsheet/index.html – Alfabravo
ho bisogno di un esempio. Cerco sul web ma non riesco a trovare un esempio per la lettura di grandi fogli tramite SXSSF, altrimenti non avrei posto la domanda in primo luogo. – jamesT
@jamesT hai eseguito questa opzione? -Xms1024M -Xmx2048M – chrome