POI写excel时空指针异常NullPointerException【已解决】

POI在写excel时,实体类member有字段数值为空,如member.getUpdateTime()member.getNickname()member.getScore()等,发现:
1、如果字段是Date类型且数值为空时,会报空指针异常,如member.getUpdateTime()字段
2、如果字段是Integer等包装类以及String等引用类型且数值为空时,会报空指针异常。因为它们的默认值都为NULL
3、如果字段是int等基本数据类型写入无问题,如member.getScore()字段。因为它们的默认值都为0

for (Member member : memberList) {
    
    
	Row row = memberSheet.createRow(1);
	row.createCell(0).setCellValue(member.getId());
	row.createCell(1).setCellValue(member.getCardCode());
	row.createCell(2).setCellValue(member.getNickname());
	row.createCell(3).setCellValue(member.getCity());
	row.createCell(4).setCellValue(member.getCountry());
	row.createCell(5).setCellValue(member.getScore());
	row.createCell(6).setCellValue(member.getMobile());
	row.createCell(7).setCellValue(member.getRealname());
	row.createCell(8).setCellValue(member.getSex());
	row.createCell(9).setCellValue(new SimpleDateFormat("yyyy-MM-dd").format(member.getBirthday()));
	row.createCell(10).setCellValue(member.getCreateTime());
	row.createCell(11).setCellValue(StringUtils.isEmpty(member.getUpdateTime()) ? "" : ""+member.getUpdateTime()+"");
	row.createCell(12).setCellValue(HelpApp.date2Str(member.getTimestamp()));
}

注:写入excel时,Date类型字段需要转换一下,excel中才可显示时间,否则显示一串数字,转换如member.getBirthday()

猜你喜欢

转载自blog.csdn.net/C2667378040/article/details/110135156