繁体   English   中英

JAVA试图从Excel表格中获取记录

[英]JAVA trying to fetch records from excel sheets

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

构造访问索引时出错-使用此命令:

 for(int z= 1;z<=sh.getLastRowNum();z++) {

如果说您只有两行,那么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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM