当前位置: 首页 > 知识库问答 >
问题:

Excel中的空行

卜瀚漠
2023-03-14

我有一个excel表格,有5条记录,我只需要将一行中的前4个单元格添加到对象列表中,而忽略其余单元格。如果前4个单元格为空或空白,那么我需要忽略该行,并且没有添加到对象中。问题是,有一些记录在行中的前4个单元格为空,但在该单元格之后有一些值。我不想在对象中包含这些行。我试图写一段代码

public static boolean isRowEmpty(Row row){
         for(int c = row.getFirstCellNum(); c<row.getLastCellNum();c++){
             Cell cell = row.getCell(c);
             if(cell!=null && cell.getCellType()!=Cell.CELL_TYPE_BLANK){
                 return false;
             }
         }
         return true;
    }

if(isRowEmpty(row)==false){
   compList.add(compItem);
}

这段代码仅在row为空并且isRow掏空()方法返回true时有效。到目前为止,它没有为列表添加值。如果前4个单元格为空白并且其余单元格在一行中有值,isRow掏空()返回false并且空值设置为对象列表。有人能给我一个解决方案吗?

共有2个答案

闾丘玮
2023-03-14

我仍然不能完全确定问题是什么。我的最佳猜测是,您希望检查每行的前4列。如果4个单元格为空,则忽略该行。

问题是,当第四列之后的列中存在单元格时,它们会被添加到列表中(而不是忽略该行)。

如果是这种情况,那么这应该会有所帮助:

public static boolean isRowEmpty(Row row){
         for(int c = row.getFirstCellNum(); c < 4 && c < row.getLastCellNum(); c++){
             Cell cell = row.getCell(c);
             if(cell!=null && cell.getCellType()!=Cell.CELL_TYPE_BLANK){
                 return false;
             }
         }
         return true;
    }

if(isRowEmpty(row)==false){
   compList.add(compItem);
}
傅兴平
2023-03-14

您正在检查行中的所有元素。如果您将选中的元素数量限制为行中的前4个,则可以获得预期的结果。

public static boolean isRowEmpty(Row row){
         int firstCol = row.getFirstCellNum();
         for(int cnt = 0; cnt<4 ; cnt++){
             Cell cell = row.getCell(firstCol+cnt);
             if(cell!=null && cell.getCellType()!=Cell.CELL_TYPE_BLANK){
                 return false;
             }
         }
         return true;
    }

if(isRowEmpty(row)==false){
   compList.add(compItem);
}
 类似资料:
  • 我一直试图创建一个宏来格式化从特定外部源复制的表,问题是,一些单元格似乎从右向左填充,剩余的空间向左填充空格:

  • 我有一个有3000行的excel文件。我删除了2000(用ms excel应用程序),但是当我从代码中调用sheet.getLastRowNum()时,它给我3000(而不是1000)...我如何删除空白行? 我尝试从这里的代码,但它不工作......

  • 因此,在excel中,我试图去掉包含信息的单元格之间的空白单元格,使用F5找到空白单元格,然后用Ctrl+-删除它们,并向上移动单元格。但当我尝试这样做时,它告诉我“没有发现细胞”。 所以我的问题是,我怎么还能做到这一点,但这些空白单元格Excel认为不是空白的?我试着通过并只按删除空白单元格,但我有很多数据,并意识到这将花费我太长的时间。我需要找到一种方法来选择这些‘空白’单元格的数据选择。 提

  • 我是vba新手,我需要在工作表中取两个值。以下示例: B10=日期。。。。。。。。N10=:。。。。。。P10=2015年2月。。。。 B10的范围有日期,N10有冒号,P10有日期值,C10:O10有空单元格。 所以每次我不得不付出 选择。结束(xlToright)。选择。 如何动态地获取此值。 日期:2月15日日期:3月15日日期:4月15日日期:5月15日日期:6月15日日期:7月15日日期

  • 我正在尝试使用Java中的Apache Poi将一些结果写入excel文件。我将结果存储在String变量中,然后在data.put调用中使用这些变量,前两个可以正常工作,但第三个导致空白单元格。当我打印到system.out.println()时,它显示良好? //创建空白工作簿XSSFWorkbook workbook=new XSSFWorkbook(); 子节点名称:#text 子节点文本

  • 我在一个更大的脚本中有一段代码,它只是根据匹配将值分配给“i”。这个想法是,如果找到输入的值,我希望它给出匹配值,如果没有,则为0。如果它是0,我可以然后退出子消息给用户。然而,任何时候匹配找到一个空值,它只是杀死子,而不是作为我介绍的iferror的一部分来处理。我尝试过各种检查方式(例如使用iif(isfalse)),但似乎都不起作用。 导致问题的代码如下所示: 我是一个模糊的整数 用户名是一