在我使用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名稱
}