获取Excel sheet页中实际有效行数(不是我写的,但是也不是我转载的)

private List<Integer> realNumberOfRow(HSSFSheet sheet){
int realNums = 0;
int firstNum = sheet.getFirstRowNum();
int lastNum = sheet.getLastRowNum();
List<Integer> number=new ArrayList<Integer>();//获取每个有值的行数下标
for (int i=firstNum;i<=lastNum;i++){

HSSFRow row = sheet.getRow(i);
int end = 0;
if(row!=null ){
end = row.getLastCellNum();
}/*else{//将为空的行删除
sheet.shiftRows(i+1, sheet.getLastRowNum()+1,-1);
continue;
}*/
boolean isNotBlankRow = false;
for(int j=0;j<end;j++){
HSSFCell cell=row.getCell(j);
//若有一个单元格不为空则此行非空
if(cell!=null){
int cellType=cell.getCellType();
String cellValue = null;
if (cellType == HSSFCell.CELL_TYPE_BLANK){//将为空的行删除
//sheet.shiftRows(i+1, sheet.getLastRowNum()+1,-1);
cellValue = "";
continue;
}else if(cellType == HSSFCell.CELL_TYPE_BOOLEAN){
cellValue = String.valueOf(cell.getBooleanCellValue());
}else if(cellType == HSSFCell.CELL_TYPE_ERROR){
cellValue = String.valueOf(cell.getErrorCellValue());
}else if(cellType == HSSFCell.CELL_TYPE_FORMULA){
cellValue = cell.getCellFormula();
}else if(cellType == HSSFCell.CELL_TYPE_NUMERIC){
DecimalFormat df = new DecimalFormat("#");
if (HSSFDateUtil.isCellDateFormatted(cell)) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
cellValue = sdf.format(HSSFDateUtil.getJavaDate(cell.getNumericCellValue()));
// 如果是date类型则 ,获取该cell的date值
//value = HSSFDateUtil.getJavaDate(cell.getNumericCellValue()).toString();
} else { // 纯数字
cellValue = df.format(cell.getNumericCellValue());
}
//cellValue = String.valueOf(cell.getNumericCellValue());
}else if(cellType == HSSFCell.CELL_TYPE_STRING){
cellValue = cell.getStringCellValue();
}else{


}
if(!StringUtil.isBlank(cellValue)){
isNotBlankRow = true;
break;
}
}
}
if(isNotBlankRow){
number.add(i);
realNums += 1;
}
}
return number;
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值