如何使用列名迭代在Excel表中的当前行?

我需要parsing一个Excel工作表,并从每一行检索值存储在数据库中。 目前,我正在根据每个单元格所具有的值的types来执行此操作。 在目前的情况下,这是可以的,因为我只需要处理两列。 但是我有一个新的需求来parsing一个超过12列的Excel表。 在这种情况下怎么做呢? 有没有一种方法,我可以迭代基于列的每一行,如果我使用表头的结构化表?

我目前的代码如下。

File file = new File(UPLOAD_LOCATION + fileUpload.getFile().getOriginalFilename()); FileInputStream excelFile = new FileInputStream(file); Workbook workbook = new XSSFWorkbook(excelFile); Sheet datatypeSheet = workbook.getSheetAt(0); Iterator<Row> iterator = datatypeSheet.iterator(); while (iterator.hasNext()) { Row currentRow = iterator.next(); Iterator<Cell> cellIterator = currentRow.iterator(); while (cellIterator.hasNext()) { Cell currentCell = cellIterator.next(); // getCellTypeEnum shown as deprecated for version 3.15 // getCellTypeEnum ill be renamed to getCellType starting // from version 4.0 if (currentCell.getCellTypeEnum() == CellType.STRING) { System.out.print(currentCell.getStringCellValue() + "--"); } else if (currentCell.getCellTypeEnum() == CellType.NUMERIC) { System.out.print(currentCell.getNumericCellValue() + "--"); } } 

我正在使用下面的外部apache API导入:

 import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook; 

有没有一种方法,我可以做同样的传递名称列标题?

请帮忙。

提前致谢。

根据评论

  InputStream excelFile = new FileInputStream(file); Workbook workbook = new XSSFWorkbook(excelFile); ArrayList colsList=new ArrayList(); colsList.add("Col1"); colsList.add("Col2"); colsList.add("Col3"); colsList.add("Col4"); Sheet datatypeSheet = workbook.getSheetAt(0); int numOfRows=datatypeSheet.getLastRowNum(); for(int rowNum=0;rowNum<numOfRows;rowNum++){ Row row=datatypeSheet.getRow(rowNum); int numOfCellPerRow=row.getLastCellNum(); for(int cellNum=0;cellNum<numOfCellPerRow;cellNum++){ if(colsList.contains(row.getCell(rowNum).getStringCellValue())){ Cell cell=row.getCell(cellNum) System.out.println("Cell No:"+cellNum+" value is: "+cell.getStringCellValue()) } } System.out.println("This is a new Row"); }