Lesen Sie xlsx-Datei mit POI (SXSSFWorkbook)
Ich versuche zu tun, meine ersten tests Lesen große xlsx-Datei mit POI, aber zu tun, einen einfachen test mit einer kleinen Datei, die ich nicht auf den Wert einer Zelle.
Kann mir jemand sagen, was ist mein Fehler. Alle Vorschläge sind willkommen. Danke.
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
}
}
Ergebnis:
Name: Hola
Exception in thread "main" java.lang.NullPointerException
at Test.main(Test.java:20)
test.xlsx:
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bitte: ähnliche Frage SXSSFWorkBook ist nur schreiben, es unterstützt nicht Lesen.
Wenn der Speicher würde nicht ein Problem sein, könnte man eine XSSFSheet statt z.B.
Auch ich Stand vor der gleichen Frage OOM während der Analyse xlsx-Datei...nach zwei Tagen Kampf, habe ich endlich herausgefunden, der code unten, dass war wirklich perfekt;
Dieser code basiert auf sjxlsx. Es liest die xlsx-Format, und speichert in einem HSSF sheet.