Fehler Beim Lesen von Großen Excel-Dateien (xlsx-Format) Via Apache POI

Ich versuche zu Lesen, große excel-xlsx-Dateien via Apache POI, sagen wir 40-50 MB. Ich bin immer out of memory-Ausnahme. Die aktuelle heap-Speicher 3GB.

Lesen kann ich kleinere excel-Dateien ohne Probleme. Ich brauche einen Weg, zu Lesen, große excel-Dateien und dann Sie zurück als Reaktion über Frühling excel anzeigen.

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+ "\"");


    }    

}

Ich das erste begann mit XSSFWorkbook workbook = new XSSFWorkbook(FileInputStream in);
aber das war teuer pro Apache POI API, also wechselte ich auf OPC Paket Weg, aber immer noch den gleichen Effekt. Ich brauche nicht zu analysieren oder verarbeiten Sie die Datei, Lesen Sie es und schicken es zurück.

  • Versuchen SXSSF poi.apache.org/spreadsheet/index.html
  • Ich brauche ein Beispiel. Ich Suche im Internet aber nicht finden können, ein Beispiel für das Lesen großen Bogen über SXSSF, sonst würde nicht die Frage gestellt in den ersten Platz.
  • haben Sie diese option? -Xms1024M -Xmx2048M
  • Nevermind, SXSSF soll schreiben großer Datenmengen nur. Geben Sie die JVM-heap-mehr Speicher, und vermeiden Sie solche unhöflich Kommentare.
  • Haben Sie versucht, eine ODBC-Verbindung? Vielleicht ein besserer Ansatz
  • Hast du Schreibzugriff auf lokale Datei, kann problem ist über die web-Anwendung.
  • Es liest aus einem Verzeichnis die xlsx-Dateien.
  • Haben Sie versucht, Blick auf die POI XSSF event API sehr wenig Speicher Lesen unterstützen?
  • Ähnlich Große Excel-XLSX-Datei Lesen, Diskussion über post - stackoverflow.com/a/13480820/1343356, sehen Sie!

InformationsquelleAutor jamesT | 2012-10-22
Schreibe einen Kommentar