如何从一个Excel工作表使用java获取特定列名称(作为parameter passing)的最后一个非空单元格的行索引?
获取书名,表名和列名作为参数并期望模块返回所需行索引的模块摘要。
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()
,我将使用for-loop从excelWSheet.getLastRowNum()
向后excelWSheet.getLastRowNum()
0
并询问每行是否存在值。
代码会是这样的 (你应该自己试试,我现在只是“在浏览器中编程”):
for (int rowNum = excelWSheet.getLastRowNum(); rowNum >= 0; rowNum--) { final Row row = excelWSheet.getRow(rowNum); if (row != null && row.getCell(colNum) != null) { rowIndex = rowNum; break; } }
- 使用POI将数据写入xlsx文件时遇到麻烦Apache – Excel之后会损坏
- Apache POI – 如何为xlsx创build工作簿
- POI 3.2 Excel文件数据丢失了
- apache poi vs python xlrd
- 有效的方法(使用apache POI)读取XLSX,replace第一行并写入结果?
- 为什么我不能在Apache POI中将一个工作簿链接到另一个工作簿?
- 如何读取Java-Web Start应用程序上的excel文件
- 如何使用apache poi在excel表单的同一个单元格中更改特定的文本颜色?
- 如何覆盖PrimeFaces p:dataExporter错误地将数字导出为Excel中的文本?