public class sample {
private static Workbook workbook;
public static void main(String[] args) {
try {
FileInputStream fis = new FileInputStream("C://Users//chakku//Desktop//ch//updated/TestReport Lang Funda1.xls");
workbook = new HSSFWorkbook(fis);
Sheet sh = workbook.getSheetAt(0);
for(int i=0;i<=sh.getLastRowNum();i++) {
int z=i+1;
Cell cell = sh.getRow(z).getCell(1);
if(Cell.CELL_TYPE_BLANK == cell.getCellType()) {
System.out.println("3");
}else {
System.out.println(cell.getRichStringCellValue());
}
}
}catch(FileNotFoundException ex) {
ex.printStackTrace();
}catch(IOException ex) {
ex.printStackTrace();
}
}
}
我不知道什么是错的,但最后在获取所有记录时它会打印NullPointerException
答案 0 :(得分:0)
构建访问索引时出错 - 请使用:
for(int z= 1;z<=sh.getLastRowNum();z++) {
答案 1 :(得分:0)
如果说你只有两行,那么sh.getLastRowNum()将返回一个(因为它从0开始计数),你将尝试访问它,如
for(int i=0;i<=sh.getLastRowNum();i++) {
int z=i+1;
Cell cell = sh.getRow(z).getCell(1);
因此,对于i = 1,您正在访问第二行(sh.getRow(2)
),它不存在,因为您应该从第0行开始。您应该执行以下操作:
for(int i=0;i<=sh.getLastRowNum();i++) {
Cell cell = sh.getRow(z).getCell(1);