Apache POI Streaming (SXSSF) pour la Lecture

J'ai besoin de lire les gros fichiers excel et d'importer leurs données à ma demande.

Depuis PVE prend une grande quantité de mémoire de travail, souvent à jeter OutOfMemory erreurs, j'ai trouvé qu'il y est un Streaming API pour le traitement des données excel dans une série de mode (plutôt que de charger le fichier complètement en mémoire)

J'ai créé un xlsx classeur, avec une seule feuille de calcul, et tapé plusieurs valeurs dans les cellules et est venu avec le code suivant à la tentative de lecture:

public static void main(String[] args) throws Throwable {
    //keep 100 rows in memory, exceeding rows will be flushed to disk
    SXSSFWorkbook wb = new SXSSFWorkbook(new XSSFWorkbook(new FileInputStream("C:\\test\\tst.xlsx")));
    SXSSFSheet sheet = (SXSSFSheet) wb.getSheetAt(0);
    Row row = sheet.getRow(0);
    //row is always null
    while(row.iterator().hasNext()){ //-> NullPointerException
        System.out.println(row.getCell(0).getStringCellValue());
    }
}

Cependant, en dépit d'être en mesure d'obtenir ses feuilles de calcul correctement, il vient toujours avec vide (null) lignes.

J'ai fait des recherches et a trouvé plusieurs exemples de l'API en continu sur internet, mais aucun d'entre eux sont sur le lecture fichiers existants, ils sont tous sur la génération de fichiers excel.

Est-il réellement possible de lire les données existantes .xlsx fichiers dans un cours d'eau?

Êtes-vous à l'aide de l'IDE Eclipse pour cela?
Oui, j'y suis, pourquoi?
coz j'ai une solution si vous souhaitez augmenter l'espace du tas.
Comme indiqué dans d'autres stackoverflow question stackoverflow.com/questions/12513981/... , SXSSFWorkBook est en écriture seule, elle ne prend pas en charge la lecture de ce qui explique pourquoi vous obtenez la valeur null.
ah, oui, il y a une vm paramètre -Xmx pour augmenter heapspace, je l'ai déjà augmenté à 2 go, et PI ne pouvait pas lire un fichier de 20 mo, donc de ce fait pas possible. mais merci quand même!

OriginalL'auteur bruno_cw | 2015-11-18