Tôi đang thử làm các bài kiểm tra đầu tiên của mình về đọc tệp xlsx lớn với POI, nhưng để làm một bài kiểm tra đơn giản với một tệp nhỏ tôi không hiển thị giá trị của ô.Đọc tập tin xlsx với POI (SXSSFWorkbook)
Ai đó có thể cho tôi biết sai lầm của tôi là gì. Tất cả các đề xuất đều được chào đón. Cảm ơn.
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
}
}
Kết quả:
Name: Hola
Exception in thread "main" java.lang.NullPointerException
at Test.main(Test.java:20)
test.xlsx:
Xin cảm ơn, nhưng tôi cần SXSSFWorkbook được sử dụng để xử lý tệp lớn mà không phát hiện lỗi bộ nhớ. – alditis
Vui lòng tham khảo: [cùng một câu hỏi] (http://stackoverflow.com/questions/12513981/reading-data-from-xlsx-sxssfsheet-with-apache-poi-java) SXSSFWorkBook chỉ viết, nó không hỗ trợ đọc – IDKFA
Bằng cách sử dụng SXSSFWorkbook chúng ta có thể tránh ném ra khỏi ngoại lệ bộ nhớ.Và chúng tôi có thể viết nhiều hơn bản ghi llakh.Nhưng nó chỉ cho phép định dạng .xlsx. – swamy