为什么我的Apache POI代码没有读取excel工作表?

时间:2017-05-30 15:57:22

标签: java selenium selenium-webdriver apache-poi

为什么我的Apache POI代码没有读取excel工作表?

我的代码:

public class ReadExcelFile {
public static void main(String[] args) throws IOException {
    Workbook book = new XSSFWorkbook(ReadExcelFile.class.getClassLoader().getResourceAsStream("C:\\Users\\Gi\\Desktop\\ExcelReader\\ExcelFramework\\src\\test\\java\\com\\ExcelFramework\\ExcelFramework\\data\\data.xlsx"));
    Sheet sheet = book.getSheet("Sheet1");
    Row row = sheet.getRow(1);
    Cell cel = row.getCell(1);

    System.err.println("Value: " + cel.getStringCellValue());
}

}

似乎收到以下错误:

Exception in thread "main" java.lang.NullPointerException
    at org.apache.poi.openxml4j.opc.internal.ZipHelper.prepareToCheckHeader(ZipHelper.java:211)
    at org.apache.poi.openxml4j.opc.internal.ZipHelper.openZipStream(ZipHelper.java:228)
    at org.apache.poi.openxml4j.opc.ZipPackage.<init>(ZipPackage.java:97)
    at org.apache.poi.openxml4j.opc.OPCPackage.open(OPCPackage.java:342)
    at org.apache.poi.util.PackageHelper.open(PackageHelper.java:37)
    at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:285)
    at com.ExcelFramework.ExcelFramework.ReadExcelFile.main(ReadExcelFile.java:11)

enter image description here

enter image description here

2 个答案:

答案 0 :(得分:3)

你可以尝试如下使用FileInputStream:

    Workbook book = new XSSFWorkbook(new FileInputStream("C:\\Users\\Gi\\Desktop\\ExcelReader\\ExcelFramework\\src\\test\\java\\com\\ExcelFramework\\ExcelFramework\\data\\data.xlsx"));
    Sheet sheet = book.getSheet("Sheet1");
    Row row = sheet.getRow(1);
    Cell cel = row.getCell(1);

    System.err.println("Value: " + cel.getStringCellValue());

答案 1 :(得分:0)

请参阅 4部分。示例https://www.mkyong.com/java/apache-poi-reading-and-writing-excel-file-in-java/

中的Apache POI库 - 读取Excel文件