Java如何利用POI读取Excel行数
这篇文章主要介绍了java如何利用POI读取Execel行数,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
java利用poi读excel文件的操作,读取总的数据行数一般是通过调用sheet.getLastRowNum();可是这样有时候会出现一些问题,例如,当其中一行的数据的确都为空,可是其原本的格式还在,并没有连带删除,这样计算出来的行数就不真实(比真实的大),还有当出现空白行时(也即某一行没有任何数据,通过Rowrow=sheet.getRow(i)返回的row值为null),计算出来的值也不正确。
本人自己写了一个方法来对excel表进行过滤,将那些没有意义的行删掉,之后再调用sheet.getLastRowNum()得到的值就是正确的了。
说明一下,本程序是结合自己项目的需求编写的,对于那些空白行有意义的excel文件来说,本文不存在参考价值。
packagetest; importjava.io.FileInputStream; importorg.apache.poi.hssf.usermodel.HSSFWorkbook; importorg.apache.poi.hssf.util.CellReference; importorg.apache.poi.ss.usermodel.Cell; importorg.apache.poi.ss.usermodel.Row; importorg.apache.poi.ss.usermodel.Sheet; importorg.apache.poi.ss.usermodel.Workbook; publicclasstest2{ publicstaticvoidmain(String[]args){ Workbookwb=null; try{ wb=newHSSFWorkbook(newFileInputStream("E:\\Workspaces\\testdata\\仓库数据.xls")); }catch(Exceptione){ // } Sheetsheet=wb.getSheetAt(0); CellReferencecellReference=newCellReference("A4"); booleanflag=false; System.out.println("总行数:"+(sheet.getLastRowNum()+1)); for(inti=cellReference.getRow();i<=sheet.getLastRowNum();){ Rowr=sheet.getRow(i); if(r==null){ //如果是空行(即没有任何数据、格式),直接把它以下的数据往上移动 sheet.shiftRows(i+1,sheet.getLastRowNum(),-1); continue; } flag=false; for(Cellc:r){ if(c.getCellType()!=Cell.CELL_TYPE_BLANK){ flag=true; break; } } if(flag){ i++; continue; } else{//如果是空白行(即可能没有数据,但是有一定格式) if(i==sheet.getLastRowNum())//如果到了最后一行,直接将那一行remove掉 sheet.removeRow(r); else//如果还没到最后一行,则数据往上移一行 sheet.shiftRows(i+1,sheet.getLastRowNum(),-1); } } System.out.println("总行数:"+(sheet.getLastRowNum()+1)); } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。