Spring Boot上传Excel批量计算学生CGPA空指针异常问题求助
错误定位
你的空指针异常由总分计算逻辑的单元格索引书写错误导致:
代码中row.getCell(2 + 3 + 4 + 5 + 6 + 7)的写法会先计算括号内的算术和,得到索引值27,而你的Excel文件仅包含8列(索引范围0~7),不存在索引为27的单元格,调用getNumericCellValue()时就会触发空指针。
修复方案
你不需要额外读取单元格获取总分,直接累加已经读取到的6门科目成绩即可,修改计算逻辑部分的代码:
// 删掉原来错误的totalMarks计算行,替换为以下内容 double totalMarks = tempStudent.getSubject1() + tempStudent.getSubject2() + tempStudent.getSubject3() + tempStudent.getSubject4() + tempStudent.getSubject5() + tempStudent.getSubject6(); double percentage = totalMarks / 6; double cgpa = percentage / 9.5; tempStudent.setCgpa(cgpa);
修改后重启服务即可正常计算并返回CGPA字段值。如果需要兼容后续Excel可能出现的空单元格场景,可以对每个科目值提前做非空判断、默认赋值0,避免后续触发空指针。
内容的提问来源于stack exchange,提问作者user15958535
相关产品推荐
相关产品推荐

