我想从特定行读取在Java中第n行excel表之后说。我不想检查细胞是否有价值。我只想跳过一些起始行说n并从第n + 1行开始读取。
我如何实现这一目标?
FileInputStream fileInputStream = new FileInputStream(fileName);
POIFSFileSystem fsFileSystem = new POIFSFileSystem(fileInputStream);
HSSFWorkbook workBook = new HSSFWorkbook(fsFileSystem);
HSSFSheet hssfSheet = workBook.getSheetAt(0);
Iterator<Row> rowIterator = hssfSheet.rowIterator();
boolean headerRow = true;
while (rowIterator.hasNext()) {
if (headerRow == false) {
HSSFRow hssfRow = (HSSFRow) rowIterator.next()
Iterator<Cell> iterator = hssfRow.cellIterator();
List cellTempList = new ArrayList();
while (iterator.hasNext()) {
HSSFCell hssfCell = (HSSFCell) iterator.next();
if(hssfCell.getCellType() == hssfCell.CELL_TYPE_NUMERIC)
{DecimalFormat df = new DecimalFormat("#");
String cellValue=df.format(hssfCell.getNumericCellValue());
cellTempList.add(cellValue.toString());
}
else if(hssfCell.getCellType() == hssfCell.CELL_TYPE_STRING)
{ cellTempList.add(hssfCell.toString());
}
}
cellDataList.add(cellTempList);
答案 0 :(得分:1)
这样的事情?
for (int rn=startRowNo; rn<=endRowNo; rn++)
{
HSSFRow row = hssfSheet.getRow(rn);
//do your processing here
}
你也可以使用
sheet.getLastRowNum();
获取最后一行。
答案 1 :(得分:0)
public void skipNthRowMethod( int skipRowNumbers ) {
int rowNum = 0;
if ( skipRowNumbers > 0 ) {
while ( rowIterator.hasNext() ) {
if( rowNum <= skipRowNumbers ) {
rowNum++;
continue;
}
rowNum++; // anything for future usage
}
}
}
使用上述方法可以帮助您跳过行号。
如果您需要更多帮助,请检查并告知我们。