线程“main”java.lang.NullPointerException与.xlsx文件中出现错误异常
我有一张表格,它包括:号码、姓名、通行证、通行证、结果。我想要获取testweb的名称、传递、结果,我尝试编写它,但出现以下错误:线程“main”java.lang.NullPointerException与.xlsx文件中出现错误异常,java,exception,nullpointerexception,xlsx,Java,Exception,Nullpointerexception,Xlsx,我有一张表格,它包括:号码、姓名、通行证、通行证、结果。我想要获取testweb的名称、传递、结果,我尝试编写它,但出现以下错误: String user[],pass[],result[]; Workbook workbook = WorkbookFactory.create(new File(pathFile)); Sheet sheet = workbook.getSheetAt(0); workbook.close(); if (sheet != null) { int rowindex
String user[],pass[],result[];
Workbook workbook = WorkbookFactory.create(new File(pathFile));
Sheet sheet = workbook.getSheetAt(0);
workbook.close();
if (sheet != null) {
int rowindex =0;
for(Row row : sheet) {
for(Cell cell:row){
int i=cell.getColumnIndex();
if(i==1) user[rowindex]=cell.toString();
if(i==2) pass[rowindex]=cell.toString();
if(i==4) result[rowindex]=cell.toString();
}
rowindex++;
}
} else {
System.out.println("Sheet was not found");
}
在你的问题中没有太多的细节,但根据你的代码,我猜你会这样做
FileInputStream inputStream = new FileInputStream(new File(file));
Workbook workbook = new XSSFWorkbook(inputStream);
Sheet sheet = workbook.getSheetAt(0);
if (sheet != null) {
int n = sheet.getLastRowNum();
// Do the rest of you code
} else {
System.out.println("Sheet was not found Check to make sure file was read and sheet was access properly.");
}
我猜你的工作表是空的。因此,您需要在检查中输入一些保护代码,以确保您拥有有效的工作表
像这样的
FileInputStream inputStream = new FileInputStream(new File(file));
Workbook workbook = new XSSFWorkbook(inputStream);
Sheet sheet = workbook.getSheetAt(0);
if (sheet != null) {
int n = sheet.getLastRowNum();
// Do the rest of you code
} else {
System.out.println("Sheet was not found Check to make sure file was read and sheet was access properly.");
}
它起作用了
if (sheet != null) {
rowNum=sheet.getLastRowNum()+1; //getlastrow() return index last row
String username[]=new String[rowNum];
int index=0;
Iterator<Row> rowIterator = sheet.iterator();
while (rowIterator.hasNext()) {
Row row = rowIterator.next();
Iterator <Cell> cellIterator = row.cellIterator();
index++;
while (cellIterator.hasNext()) {
Cell cell = cellIterator.next();
if(cell.getColumnIndex()==1)
username[index]=cell.toString();
}
}
} else {
System.out.println(" Sheet was not found ");
}
请提供所有涉及的代码和堆栈跟踪。因此,如果您使用的是ApachePOI,那么您应该使用XSSFWorkbook