我正在编写一个Java程序,要在其中检索具有行标题的数据。我的Excel工作表如下所示:
我编写了以下简单的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
}
}
重要:上面的代码首先循环遍历每一列,然后遍历每一行。