繁体   English   中英

如何使用Java从Excel工作表中获取特定列名(作为参数传递)的最后一个非空单元格的行索引?

[英]How to get the row index of last non-empty cell for a specific column name(passed as an argument) from an excel sheet using java?

该模块的摘要,它以书名,图纸名和列名作为参数,并期望该模块返回所需的行索引。

public int getExcelData(String WBookName, String sheetName, String columnName) {

    int colNum = -1;
    int rowIndex = -1;
    InputStream inputStream =  getClass().getClassLoader().getResourceAsStream("/"+WBookName+".xls");
    try {
        excelWBook = new XSSFWorkbook(inputStream);
        Log.info(WBookName+"Excel File loaded Successfully");
    } catch (IOException e) {
        Log.fatal("Unable to load"+WBookName+" Excel File");
        e.printStackTrace();
    }
    excelWSheet = excelWBook.getSheet(sheetName);
    row = excelWSheet.getRow(0);

    for(int i=0; i<row.getLastCellNum();i++) {
        if(row.getCell(i).getStringCellValue().trim().equals(columnName)){
            colNum = i;
        }
    }
    {
        //code for getting last non-empty row for a columnName (Possible using Iterator?)
    }
    return rowIndex;

由于Apache POI具有方法Sheet#getLastRowNum() ,因此我将使用从excelWSheet.getLastRowNum()0的for循环,然后向每一行询问是否存在值。

代码将是这样的 (您应该自己尝试,我现在只是“在浏览器中编程”)如下:

for (int rowNum = excelWSheet.getLastRowNum(); rowNum >= 0; rowNum--) {
    final Row row = excelWSheet.getRow(rowNum);
    if (row != null && row.getCell(colNum) != null) {
        rowIndex = rowNum;
        break;
    }
}

暂无
暂无

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

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