我正在编写一个Java程序,要在其中检索具有行标题的数据。我的Excel工作表如下所示:

java - 如何在Excel中遍历列以获取行标记数据?-LMLPHP

我编写了以下简单的Java代码,以基于行标题顺序检索值:

....
try
    {
    fileSystem = new POIFSFileSystem (inpStrm);

    HSSFWorkbook      workBook = new HSSFWorkbook (fileSystem);
    HSSFSheet         sheet    = workBook.getSheetAt(0);
    int column = 1;
    for(int i = 0;i <=3;i++){

        for(int j = 0;j<=3;j++){
            HSSFRow row = sheet.getRow(j);
            System.out.print(row.getCell(column).getStringCellValue() + "    ");
        }
        System.out.println("");
        column++;
    }
    }
    catch(Exception e){
        e.printStackTrace();
    }
....


运行代码后,我的输出如下:

P1    M    C1    Hyderabad
P2    M    C2    Pune
P3    F    C3    Pune
P4    M    C4    Hyderabad


现在有没有简单可行的方法可以对大型Excel工作表(50行标题)执行相同的操作?

如果我使用具有以上四个属性的POGO类,那么如何从Excel中获取带有值的对象列表?

最佳答案

现在有没有简单可行的方法可以对大型Excel工作表(50行标题)执行相同的操作?


您可以在循环中使用方法sheet.getLastRowNum()作为条件遍历所有行,在第二个循环中使用方法row.getLastCellNum()遍历特定行中的所有单元格。

for(int rowNumber = 0; rowNumber < sheet.getLastRowNum(); rowNumber++) {
    HSSFRow row = sheet.getRow(rowNumber);

    for(int columnNumber = 0; columnNumber < row.getLastCellNum(); columnNumber++) {
        HSSFCell cell = row.getCell(columnNumber);
        if(cell != null) {
            // do something with the cell
        }
}


重要:上面的代码首先循环遍历每一列,然后遍历每一行。

09-30 10:49