0
我想使用Apache-POI删除最后10行。我试图在网上找到解决方案,没有运气。 我的代码:删除最后一行Excel时出错 - Apache POI
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");
}
}
}
错误:
Exception in thread "main" java.lang.NullPointerException
at org.apache.poi.xssf.usermodel.XSSFSheet.removeRow(XSSFSheet.java:1914) at Sample1.main(Sample1.java:27)
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
任何帮助表示赞赏。
在此先感谢。
为什么在'+ 1''INT lastRowNum = sheet.getLastRowNum()+ 1;'?为什么'if(file.isFile()&& file.exists())'?如果'FileInputStream'能够为这个文件创建一个'FileInputStream',那么它**必须是一个文件并且**必须存在。否则'FileNotFoundException'会被抛出。 –