我正在使用Apache POi HSSF库将信息导入到我的应用程序中。问题是这些文件有一些额外的/空的行需要在解析之前先被移除。使用Apache POI从Excel工作表中删除行HSSF
没有HSSFSheet.removeRow(int rowNum)
方法。只有removeRow(HSSFRow row)
。这个问题,空行不能被删除。例如:
sheet.removeRow(sheet.getRow(rowNum));
在空行上给出NullPointerException,因为getRow()
返回null。 另外,正如我在论坛上看到的,removeRow()
仅擦除单元格内容,但该行仍然存在为空行。
有没有删除行(空或不),而不创建一个全新的工作表没有我想要删除的行的方式吗?
因为我已经为格式化为简单表格的Excel文件(在第一行和下面的数据的列名称)做了解析器,如果有空行,我需要警告用户。另外,我现在要导入的文件来自另一个应用程序,并且只有很多额外的行(空或不)才能使文件看起来更漂亮! – fmaste 2009-12-02 19:23:17
好的 - 但我只是说,你可能会很好地服务于子类化现有的解析器,并让你的子类忽略空行而不是对它们做某些事情;这样,来自其他应用程序的文件仍然可以很好看,而且您不必死在这些文件上。 :) – delfuego 2009-12-02 19:27:05
是的。我也想到了。但该文件具有以下内容:仅用于第一列(id)的行,以及下一行中的其余列。只是因为它看起来更好。我需要把它做成一行并删除一行。 我认为我会创建一个包含工作表和行索引列表的类,并在删除行时删除索引。它很多,但我需要删除行,我不明白为什么你不能用这个库删除行! – fmaste 2009-12-02 19:36:10