我正在使用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