在我使用easypoi做导出功能的时候,突然抛了一个数组越界异常,找了很久也没找到,最后猜想有可能是路径出了问题,然后打印了一下图片存放的路径,结果发现在其保存路径上存在“.”,也就是easypoi底层在解析图片路径时多了“.”,就会造成它底层的数组越界,所以我的解决方案就是把项目工作空间拖出来重新放在一个指定的位置下,

再用idea重新导入该项目,重新启动Tomcat测试,完美解决这个异常。最后再附上简单的导出功能代码:

@RequestMapping("/exportXlsx")
public String exportXls(ModelMap map, EmployeeQuery query, HttpServletRequest req) {
//获取图片的真实路径
List<Employee> list = employeeService.queryAll(query);
String realPath = req.getServletContext().getRealPath("");
//重新设置图片路径
list.forEach(e -> {
e.setHeadImage(realPath + e.getHeadImage());
});
//设置一些属性
ExportParams params = new ExportParams("xx信息", "xx", ExcelType.XSSF);
params.setFreezeCol(2);
map.put(NormalExcelConstants.DATA_LIST, list); // 数据集合
map.put(NormalExcelConstants.CLASS, Employee.class);//导出实体
map.put(NormalExcelConstants.PARAMS, params);//参数
map.put(NormalExcelConstants.FILE_NAME, "xxx");//文件名称
return NormalExcelConstants.EASYPOI_EXCEL_VIEW;//View名称
}

 

 posted on 2019-11-24 16:14  wings丶xh  阅读(1813)  评论(1编辑  收藏  举报