我想使用Intellij和Apache Poi在单元格A1和A2中读取两个整数值100和200。
问题:我在下面的num1行得到了java. lang.nullpointerx的概念。
我已经检查过我是否添加了apache poi jar并添加了正确的导入指令。Excel行和列索引从1开始。因此,getRow(1). getCell(1)引用单元格A1。此外,getSheetAt(0)引用了我在Excel文件中的第一个也是唯一一个工作表。
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import java.io.File;
import java.io.FileInputStream;
import java.lang.Exception;
int num1, num2, sum1;
File src=new File("C:/test/testdata.xlsx");
FileInputStream fis=new FileInputStream(src);
XSSFWorkbook wb=new XSSFWorkbook(fis);
XSSFSheet sheet = wb.getSheetAt(0);
num1 = Integer.parseInt(sheet.getRow(1).getCell(1).getStringCellValue());
num2 = Integer.parseInt(sheet.getRow(2).getCell(1).getStringCellValue());
sum1 = num1 + num2;
System.out.println("The sum: " + sum1);
成功运行代码时,我应该会看到num1和num2从excel文件中填充,并且总和打印在控制台中。
在ApachePOI读取Excel文件时,除了编码的其他部分,您必须按以下方式处理。
Cell cell = sheet.getRow(1).getCell(1);
if (cell.getCellTypeEnum() == CellType.STRING) {
//write logic to handle
}
else if (cell.getCellTypeEnum() == CellType.NUMERIC) {
//write logic to handle
}
您还需要检查cell是否存在,您可以进行空检查。