gpt4 book ai didi

java - 使用 POI (SXSSFWorkbook) 读取 xlsx 文件

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:06:18 31 4
gpt4 key购买 nike

我正在尝试使用 POI 进行第一个读取大型 xlsx 文件的测试,但是要对一个小文件进行简单测试,我无法显示单元格的值。

有人可以告诉我我的错误是什么。欢迎所有的建议。谢谢。

测试.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)

测试.xlsx:

enter image description here

最佳答案

请咨询:similar question SXSSFWorkBook 是只写的,不支持读取。

For low memory reading of .xlsx files, you should look at the XSSF and SAX EventModel documentation : Gagravarr

如果内存不是问题,您可以使用 XSSFSheet,例如

    File file = new File("D:/temp/test.xlsx");
FileInputStream fis = new FileInputStream(file);
XSSFWorkbook wb = new XSSFWorkbook(fis);

XSSFSheet sh = wb.getSheet("Hola");
System.out.println(sh.getLastRowNum());
System.out.println("Name: "+sh.getSheetName());
Row row = sh.getRow(1);

System.out.println(row.getRowNum());

System.out.println("Val: "+sh.getRow(1).getCell(1).getStringCellValue());

关于java - 使用 POI (SXSSFWorkbook) 读取 xlsx 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13873489/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com