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

Apache Poi excel删除空白行

翁和正
2023-03-14

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

我尝试从这里的代码,但它不工作......

共有3个答案

赫连俊悟
2023-03-14

根据我对删除行的理解,你一定选择了所有的单元格并按下删除按钮。如果我是对的,那么你以错误的方式删除了行。通过这种方式,单元格变成空白而不是删除,所以行实际上包含空白值的单元格,这就是为什么要包括在行计数中。

正确的方法是选择第一个单元格左侧出现行号的行。单击行号将选择完整的行。使用Shift键选择所有必需的行。现在右键单击,然后选择删除。

这可能对你有帮助。

廉实
2023-03-14

我还没有找到任何解决方案来轻松获得“真实”行数,但我找到了一个解决方案来删除这些行,这可能对解决类似问题的人有用。见下文。

我搜索了一下,找到了这个解决方案

它所做的只是从底部删除那些可能正是您想要的空行。

诸超
2023-03-14

有两种方法:

1.)没有代码:复制Excel的内容并将其粘贴到一个新的excel中,然后根据需要重命名。

2.)使用代码(我没有找到任何函数,所以我创建了自己的函数):

您需要检查每个单元格中是否存在任何类型的空白/空字符串/空类型的内容。在处理该行之前(我希望您正在处理row-wise,我也在使用org.apache.poi.xssf.usermodel.XSSFRow),进行if检查,并在if(条件)中检查该方法的返回类型,如果为true,则意味着该行(XSSFRow)具有其他值,请将迭代器移到下一行

public boolean containsValue(XSSFRow row, int fcell, int lcell) 
{
    boolean flag = false;
    for (int i = fcell; i < lcell; i++) {
    if (StringUtils.isEmpty(String.valueOf(row.getCell(i))) == true || 
        StringUtils.isWhitespace(String.valueOf(row.getCell(i))) == true || 
        StringUtils.isBlank(String.valueOf(row.getCell(i))) == true || 
        String.valueOf(row.getCell(i)).length() == 0 || 
        row.getCell(i) == null) {} 
    else {
                flag = true;
        }
    }
        return flag;
}

最后,你的处理方法如下

.
.
.
int fcell = row.getFirstCellNum();// first cell number of excel
int lcell = row.getLastCellNum(); //last cell number of excel
while (rows.hasNext()) {
row = (XSSFRow) rows.next();//increment the row iterator
if(containsValue(row, fcell, lcell) == true){

.
.
..//processing
.
.
}

}

希望这能有所帮助。:)

 类似资料:
  • 我遇到了损坏的CSV问题,它在图像链接中有空白。 CSV文件由我的客户业务合作伙伴自动创建,约22000行。CSV中大约有30个链接被破坏,我无法修复。因为它每3小时更新一次。 所以,我试图想出一个自动的解决方案,但似乎没有任何效果。 问题在于图像链接,如以下链接:https://images.tyroo.de/GISLAVED_ULTRA_SPEED2�.jpg 它以前有空间。一些文件有3个空格

  • 问题内容: 该被删除空行的第一个条件而已,我怎么会确保每个条件的脚本删除空行? 问题答案: 将以下条件放入第一个条件中,并使用语句检查它们,如下所示:

  • 问题内容: 我想使用golangs regexp替换所有空白行和仅用空格/制表符填充的行。我以为下面的regexp应该可以解决问题, ^\s*$ 但令我惊讶的是,行首和行尾regexp标签不起作用。它们似乎表示整个字符串的开始/结束,而不仅仅是字符串中的一行,请参阅 https://play.golang.org/p/WZ4flVtDMN 我在这里想念什么吗? 编辑: Wiktors的回答几乎使我

  • 问题内容: 我有一个很大的csv文件,其中某些行完全空白。如何使用Python从csv中删除所有空白行? 经过您的所有建议,这就是我到目前为止的内容 可以吗?或者有更好的方法吗? 问题答案: 使用模块: 如果还需要删除所有字段为空的行,请将行更改为: 而且,如果您还想将仅包含空格的字段视为空白,则可以将其替换为: 请注意,在Python 2.x和更早版本中,该模块需要二进制文件,因此您需要使用e标

  • 我需要在我用docx4j生成的文档中有条件地删除/添加分页符。如果页面内容适合整个页面,那么我添加的分页符会创建一个空白页。我使用下面的代码来删除分页符: } 但这也删除了有用的分页符。那么,有什么方法可以动态检查页面内容高度吗?或者其他解决方案?

  • 问题内容: 我确实有一个包含超过100000个数据元素的表,但是其中几乎有350个空白行。如何使用phpmyadmin删除此空白行?手动删除是一项繁琐的任务。 问题答案: 普遍的答案是: 或者 参见:http : //dev.mysql.com/doc/refman/5.0/en/delete.html 发布表格时的更多信息!〜 另外,请务必执行以下操作: 删除之前,这样就可以看到要删除的行!我认