I want to delete an entire row from excel,
I have tried removeRow:
XSSFRow rerow = sheet1.getRow(1);
sheet1.removeRow(rerow);
and shiftRows:
int rowIndex = 1;
int lastIntext = sheet1.getLastRowNum();
sheet1.shiftRows(rowIndex+1, lastIntext, -1);
But it is deleting only values in row not the entire row.
解决方案
Even i faced the same problems but figured after a couple of researches and found
There was a bug/or they might have changed the behavior in 4.0.0 and 4.0.1 of Apache Poi
for
sheet1.shiftRows(rowIndex+1, lastIntext, -1);
Please use
org.apache.poi
poi
3.17
org.apache.poi
poi-ooxml
3.17
And use your code much better way to remove you row like this
public static void removeRow(Sheet sheet, int rowIndex) {
int lastRowNum = sheet.getLastRowNum();
if (rowIndex >= 0 && rowIndex < lastRowNum) {
sheet.shiftRows(rowIndex + 1, lastRowNum, -1);
}
if (rowIndex == lastRowNum) {
Row removingRow = sheet.getRow(rowIndex);
if (removingRow != null) {
sheet.removeRow(removingRow);
}
}
}
And it worked for me.
May be they might update it in next api releases
Thank you if it would have helped you