【发布时间】:2014-09-24 09:07:35
【问题描述】:
我正在尝试使用 Apache POI 更新 java 中的 .xlsx 文件。
这是我的代码:
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class updateResults {
void updateResults(String path) throws FileNotFoundException, IOException{
FileInputStream fis = new FileInputStream(new File(path));
XSSFWorkbook workbook = new XSSFWorkbook (fis);
XSSFSheet sheet = workbook.getSheetAt(0);
XSSFRow row1 = sheet.getRow(1);
XSSFCell cell1 = row1.getCell(1);
cell1.setCellValue("Mahesh");
XSSFRow row2 = sheet.getRow(2);
XSSFCell cell2 = row2.getCell(1);
cell2.setCellValue("Ramesh");
fis.close();
FileOutputStream fos =new FileOutputStream(new File(path));
workbook.write(fos);
fos.close();
System.out.println("Done");
}
}
问题是我在“32”行得到一个空指针异常,即XSSFCell cell2 = row2.getCell(1);
有人知道为什么会这样吗?
【问题讨论】:
-
您的工作表有多少行?
-
将其放入一个循环中,限制为您期望的行数,并在分别调用 getCell 或 getValue 之前对行和单元格进行空检查。
-
谢谢 :) 有史以来最有帮助的问题 :) @Jens
-
异常意味着你没有第 2 行。这就是为什么它返回 null 所以 nullpointerexception。
标签: java apache-poi