for (int i = 0; i < newSheet.getLastRowNum(); i++) {
if (.....) {
newSheet.removeRow(newSheet.getRow(i));
newSheet.shiftRows(i+1, newSheet.getLastRowNum(), -1);
i--;
}
}
它没有给出任何编译错误或运行时错误,但我正在处理的Excel文件已损坏。
打开文件时显示此信息-
在Excel中打开时出错:
已删除的记录:/xl/worksheets/sheet1.xml部分中的单元格信息
因此,对此有任何错误修复或我应该怎么做?
[很遗憾,从Apache POI发行版4.1.0开始,XSSFSheet shiftRows();
中存在一个尚未修复的错误。当前输入了一个用于跟踪和修复的错误Here。
直到它被修复,我建议将POI JAR版本降级到3.17(请参阅此StackOverflow Post),或使用同一文章中由“ Axel Richter”显示的修复程序的版本。
希望Apache很快会在较新的版本中修复该错误。