在 java 中使用 apache poi 生成 .xls 文件时出现空指针异常。
相同的代码在“英语语言”中运行良好,但它在尝试用“法语”语言生成时给了我空指针。
某些列具有空值,但我在创建单元格时正在处理那些空数据和空白单元格
尝试写出详细信息时获取空指针
"classExcel.write(out)";
以下是我在 DTO 中保存所有数据后用于生成 xls 的方法。
public void ExcelGenerate(
ClassExcelDTO classExcel,
HttpServletResponse response,
HttpServletRequest request) throws Exception {
request.setCharacterEncoding("iso-8859-1");
if( classExcel != null ){
response.reset();
response.setContentType("application/csv");
response.setHeader("Content-disposition","attachment;filename=\"" + classExcel.getName + ".xls\"");
try {
if(null!=response && null!=response.getOutputStream()){
OutputStream out = response.getOutputStream();
if(null!=out)
try {
classExcel.write(out);
} catch (Exception e) {
e.printStackTrace();
}
out.close();
}
} catch (SocketException sEx) {
} catch (IOException io) {
} catch (Exception e) {
}
} else {
// Some code
}
}
下面是生成的异常: 14:43:09,037 ERROR [stderr] (http-localhost/127.0.0.1:8080-4) java.lang.NullPointerException
14:43:09,037 错误 [stderr] (http-localhost/127.0.0.1:8080-4) 在 org.apache.poi.util.StringUtil.putCompressedUnicode(StringUtil.java:193)
14:43:09,037 错误 [stderr] (http-localhost/127.0.0.1:8080-4) 在 org.apache.poi.hssf.record.BoundSheetRecord.serialize(BoundSheetRecord.java:281)
14:43:09,037 错误 [stderr] (http-localhost/127.0.0.1:8080-4) 在 org.apache.poi.hssf.model.Workbook.serialize(Workbook.java:732)
14:43:09,037 错误 [stderr] (http-localhost/127.0.0.1:8080-4) 在 org.apache.poi.hssf.usermodel.HSSFWorkbook.getBytes(HSSFWorkbook.java:786)
14:43:09,037 错误 [stderr] (http-localhost/127.0.0.1:8080-4) 在 org.apache.poi.hssf.usermodel.HSSFWorkbook.write(HSSFWorkbook.java:732)
如果有人有任何想法,请帮助我。