Erreur lors de la Lecture de Gros Fichiers Excel (xlsx) Via Apache POI

Je suis en train de lire les gros fichiers excel xlsx via Apache POI, dire de 40 à 50 MO. Je suis sortir de mémoire exception. Le courant de segment de mémoire est de 3 go.

Je peux lire les petits fichiers excel sans aucun problème. J'ai besoin d'un moyen de lire les gros fichiers excel, puis en réponse par le Printemps excel vue.

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


    }    

}

J'ai d'abord commencé à l'aide de XSSFWorkbook workbook = new XSSFWorkbook(FileInputStream in);
mais c'était coûteux par Apache POI API, donc je suis passé à l'OPC paquet façon, mais toujours le même effet. Je n'ai pas besoin d'analyser ou traiter le fichier, il suffit de le lire et de le retourner.

Essayez SXSSF poi.apache.org/spreadsheet/index.html
J'ai besoin d'un exemple. J'ai chercher sur le web mais ne peut pas trouver un exemple pour la lecture de grandes feuilles via SXSSF, autrement, n'aurait pas posé la question en premier lieu.
avez-vous cette option? -Xms1024M -Xmx2048M
Tant pis, SXSSF est destiné à écrire de grandes quantités de données. Donner du segment de la JVM, plus de mémoire et éviter que de tels commentaires grossiers.
Avez-vous essayé une connexion ODBC? Peut-être sera une meilleure approche

OriginalL'auteur jamesT | 2012-10-22