删除最后一行Excel中的错误 – Apache POI

我正在尝试使用Apache-POI删除最后10行。 我试图find解决scheme在线,没有运气。 我的代码:

import java.io.*; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.sl.usermodel.Sheet; import org.apache.poi.xssf.usermodel.*; public class Sample1 { public static void main(String[] args)throws Exception { File file = new File("File.xlsx"); FileInputStream fIP = new FileInputStream(file); XSSFWorkbook wb = new XSSFWorkbook(fIP); XSSFSheet sheet = wb.getSheetAt(1); int lastRowNum = sheet.getLastRowNum()+1; //XSSFRow removingRow = sheet.getRow(lastRowNum); if(file.isFile() && file.exists()) { for (int i = lastRowNum; i>= lastRowNum-10 ; i-- ) { XSSFRow removingRow = sheet.getRow(i); sheet.removeRow(removingRow); } } else { System.out.println("Error in opening the file"); } } } 

错误:

线程“main”java.lang.NullPointerException中的exception
在Sample1.main(Sample1.java:27)上的org.apache.poi.xssf.usermodel.XSSFSheet.removeRow(XSSFSheet.java:1914)

Jar文件:

 dom4J-1.6.1 poi-3.16 poi-3.17-beta poi-ooxml-3.15.0 poi-ooxml-schemas-3.15.0 xmlbeans-2.6.0 commons-collections4-4.0 commons-collections4-4.1 commons-codec-1.10 commons-logging-1.2 maven-ant-tasks-2.1.3 

任何帮助表示赞赏。

提前致谢。

错误的一个错误:

 for (int i = lastRowNum; i>= lastRowNum-10 ; i-- ) 

应该:

 for (int i = lastRowNum - 1; i>= Math.max(lastRowNum-10, 0) ; i-- )