使用 POI 从 Excel 工作表中的下一行获取值
Posted
技术标签:
【中文标题】使用 POI 从 Excel 工作表中的下一行获取值【英文标题】:Get value from next row in Excel sheet with POI 【发布时间】:2015-04-09 13:09:49 【问题描述】:我正在使用 Apache POI 读取 Excel 文档。如果当前为空,我想从下一行获取单元格值。例如,从第一行获取所有非空单元格值,对于空单元格:移动到下一行并获取值。 这是我用来读取 Excel 文档的代码
//every sheet has rows, iterate over them
Iterator<Row> rowIterator = sheet.iterator();
if (rowIterator.hasNext())
rowIterator.next();
while (rowIterator.hasNext())
String libelle="";
.....
//Get the row object
Row row = rowIterator.next();
//Every row has columns, get the column iterator and iterate over them
Iterator<Cell> cellIterator = row.cellIterator();
while (cellIterator.hasNext())
//Get the Cell object
Cell cell = cellIterator.next();
//check the cell type and process accordingly
//2nd column
switch(cell.getCellType())
case Cell.CELL_TYPE_STRING:
......
if (row.getCell(5) == null)
System.out.println("Cell is Empty in Column:" );
else if (row.getCell(5).getCellType() == HSSFCell.CELL_TYPE_STRING)
libelle= row.getCell(5).getStringCellValue().trim();
...
【问题讨论】:
您是否尝试阅读Apache POI docs on iterating over rows and cells? 【参考方案1】:您可以使用Sheet.getRow(int rownumber)
获取具有特定数字的行。
您可以通过Row.getRowNum()
获取当前行的编号,通过Cell.getColumnIndex()
获取单元格的索引。
因此,下一行单元格的值将是
Row nextRow = sheet.getRow(row.getRowNum() + 1);
if (nextRow != null)
String value = nextRow.getCell(curCel.getColumnIndex(), Row.CREATE_NULL_AS_BLANK).getStringCellValue();
【讨论】:
【参考方案2】:如果计算的索引小于Sheet.getLastRowNum(),则可以通过Sheet.getRow(int)方法找出当前Cell.getRowIndex()访问下一个Row
,以便访问以下Cell
中的Cell.getColumnIndex() Row
.
【讨论】:
以上是关于使用 POI 从 Excel 工作表中的下一行获取值的主要内容,如果未能解决你的问题,请参考以下文章