在springboot项目中使用easy-poi进行模板填充时,本地能正常导出。部署到线上服务器就报空指针。原因是服务器没有加载到模板文件。
本地能正常导出代码:
//存放模板在resources下的路径
String tempPath = "/downtemplates/test.xlsx";
// 加载模板文件
TemplateExportParams exportParams = new TemplateExportParams(tempPath, true);
//填充,其中dataMap是要填充的数据。
Workbook workbook = ExcelExportUtil.exportExcel(exportParams, dataMap);
//导出
workbook.write(response.getOutputStream());
修改后的代码:
//存放模板在resources下的路径
String tempPath = "/downtemplates/test.xlsx";
//增加这两行代码
ClassPathResource classPathResource = new ClassPathResource(tempPath);
tempPath = classPathResource .getPath();
// 加载模板文件
TemplateExportParams exportParams = new TemplateExportParams(tempPath, true);
//填充,其中dataMap是要填充的数据。
Workbook workbook = ExcelExportUtil.exportExcel(exportParams, dataMap);
通过ClassPathResource来读取文件路径之后,服务器顺利导出模板填充后的文件。