HSSFSheet删除所有空行

时间:2012-11-30 16:09:44

标签: java apache excel apache-poi poi-hssf

我有一张excel表,例如3,4和第6行是空的(之前我称之为那些行的sheet.removeRow())。我总共有7行

现在,拥有这些空行的索引,我想删除它们(转移它们)。

当我调用该函数时      shiftRows(rowIndex + 1,lastRowNum,-1) 我得到了

 java.lang.IllegalArgumentException: Minumum row number is 0

这是我的实施

 List<Integer> rowsToRemove = [2,3,5];
 for (Integer rowIndex : rowsToRemove) {
     removeRow(sheet, rowIndex);
 }
 int lastRowNum = sheet.getLastRowNum();
 for (Integer rowIndex : rowsToRemove) {
     shiftRow(sheet, rowIndex, lastRowNum);
 }


/**
* Remove a row by its index
* @param sheet a Excel sheet
* @param rowIndex a 0 based index of removing row
*/
public static void removeRow(HSSFSheet sheet, int rowIndex) {

   HSSFRow removingRow = sheet.getRow(rowIndex);
   if(removingRow!=null) {
       sheet.removeRow(removingRow);
   }
}

public static void shiftRow(HSSFSheet sheet, int rowIndex, int lastRowNum) {
   if (rowIndex >= 0 && rowIndex < lastRowNum) {
       sheet.shiftRows(rowIndex+1, lastRowNum, -1);
   }
}

你可以帮我删除那些空行吗? 我需要一个解决方案来删除excel文件中的空行。

由于

1 个答案:

答案 0 :(得分:0)

仅当列中的单元格未合并时,此方案才有效。如果它们被合并,那么poi中的例外将会发生。