我有一张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文件中的空行。
由于
答案 0 :(得分:0)
仅当列中的单元格未合并时,此方案才有效。如果它们被合并,那么poi中的例外将会发生。