Lire fichier xlsx avec POI (SXSSFWorkbook)
Je suis en train de faire mes premiers essais de lecture de grandes xlsx fichier de POI, mais de faire un simple test avec un fichier de petite taille, je n'arrive pas à afficher la valeur d'une cellule.
Quelqu'un peut me dire quelle est mon erreur. Toutes les suggestions sont les bienvenues. Merci.
Test.java:
import java.io.File;
import java.io.FileInputStream;
import org.apache.poi.openxml4j.opc.OPCPackage;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class Test {
public static void main(String[] args) throws Throwable {
File file = new File("/tmp/test.xlsx");
OPCPackage pkg = OPCPackage.open(new FileInputStream(file.getAbsolutePath()));
XSSFWorkbook xssfwb = new XSSFWorkbook(pkg);
SXSSFWorkbook wb = new SXSSFWorkbook(xssfwb, 100);
Sheet sh = wb.getSheet("Hola");
System.out.println("Name: "+sh.getSheetName()); //Line 19
System.out.println("Val: "+sh.getRow(1).getCell(1).getStringCellValue()); //Line 20
}
}
Résultat:
Name: Hola
Exception in thread "main" java.lang.NullPointerException
at Test.main(Test.java:20)
test.xlsx:
OriginalL'auteur alditis | 2012-12-14
Vous devez vous connecter pour publier un commentaire.
Veuillez consulter: question similaire SXSSFWorkBook est en écriture seule, elle ne prend pas en charge la lecture.
Si la mémoire ne serait pas un problème, vous pouvez utiliser une XSSFSheet au lieu par exemple
Veuillez consulter: même question SXSSFWorkBook est en écriture seule, elle ne prend pas en charge la lecture de
En utilisant SXSSFWorkbook nous pouvons éviter de les jeter hors de la mémoire exception.Et on peut écrire plus de llakh enregistrements.Mais il permet seulement .format xlsx.
OriginalL'auteur IDKFA
J'ai moi aussi été confronté au même problème de OOM lors de l'analyse fichier xlsx...après deux jours de lutte acharnée, j'ai enfin trouvé le code ci-dessous qui a été vraiment parfait;
Ce code est basé sur sjxlsx. Il lit le xlsx et les stocke dans un HSSF feuille.
OriginalL'auteur Meer Nasirudeen