java使用poi删除excel中的空行
发布日期:2021-06-24 18:49:07 浏览次数:2 分类:技术文章

本文共 1096 字,大约阅读时间需要 3 分钟。

hot3.png

根据自己实际操作,poi中lastRowNum方法获取行数的是excel最后有数据的一行,从0开始

而physicalNumberOfRows方法获取的行数是excel最后有数据的一行减去最后一行之前的空白行

 

工作中有一个需求是,上传excel文件导入数据,但是需要将成功的数据的条数,和失败条数返回,这种情况我的做法就是将成功的条数从excel中删除,使用

sheet.removeRow(sheet.getRow(40));

但是这个方法我们删除的只是数据,当前行并没有删除,所以留下来的是一个空行

这种情况就需要将空行后边的数据全部向前移一行,用到的方法是

sheet.shiftRows(i+1,physicalNumberOfRows,-1);

  • 二个参数为需要移动的行的区间,第三个参数负数代表向前移,正数代表向后移

具体代码:

FileInputStream fileInputStream = new FileInputStream("D:\\MyDocuments\\itw_renzm\\桌面\\file.xls");    HSSFWorkbook workbook = new HSSFWorkbook(fileInputStream);    HSSFSheet sheet = workbook.getSheetAt(0);    int physicalNumberOfRows = sheet.getPhysicalNumberOfRows();    int lastRowNum = sheet.getLastRowNum();    //清除excel当前行    sheet.removeRow(sheet.getRow(10));    sheet.removeRow(sheet.getRow(20));    sheet.removeRow(sheet.getRow(21));    sheet.removeRow(sheet.getRow(22));    sheet.removeRow(sheet.getRow(23));    sheet.removeRow(sheet.getRow(24));    sheet.removeRow(sheet.getRow(40));    System.out.println(lastRowNum+"------"+physicalNumberOfRows);    for(int i =1;i

转载于:https://my.oschina.net/renzhimin/blog/3032023

转载地址:https://blog.csdn.net/weixin_34248258/article/details/92067898 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:【详解】以银行零售业务为例,一个案例说清楚可视化微服务架构
下一篇:Ubuntu 14.04 Ruby,ROR环境搭建

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年04月15日 23时27分39秒