我正在嘗試使用POI來讀取大型xlsx文件的第一次測試,但要使用小文件進行簡單測試,我無法顯示單元格的值。使用POI讀取xlsx文件(SXSSFWorkbook)
有人可以告訴我什麼是我的錯誤。所有的建議都受到歡迎。謝謝。
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
}
}
結果:
Name: Hola
Exception in thread "main" java.lang.NullPointerException
at Test.main(Test.java:20)
test.xlsx:
謝謝,但我需要SXSSFWorkbook是用來處理大文件,而不會拋出內存錯誤。 – alditis
請參考:[同樣的問題](http://stackoverflow.com/questions/12513981/reading-data-from-xlsx-sxssfsheet-with-apache-poi-java)SXSSFWorkBook是隻寫,它不支持閱讀 – IDKFA
通過使用SXSSFWorkbook,我們可以避免拋出內存異常。並且我們可以編寫超過llakh記錄,但它只允許.xlsx格式。 – swamy