service层封装好数据后调用easyExcel生成表格并从浏览器下载
生成下载代码
前端返回200成功,但是响应乱码
文件也没有在浏览器下载下来。
找到问题所在了,乌龙了,前端调用没写好,对前端不是很熟悉.
service层封装好数据后调用easyExcel生成表格并从浏览器下载
找到问题所在了,乌龙了,前端调用没写好,对前端不是很熟悉.
public static void exportExcel(Class clazz, List list, String sheetName, HttpServletResponse response) throws IOException {
try {
response.setContentType("application/vnd.ms-excel;" + GlobalConstant.CHARSET_UTF8);
response.setCharacterEncoding(GlobalConstant.UTF8);
String fileName = URLEncoder.encode(sheetName, GlobalConstant.UTF8).replaceAll("\\+", "%20");
response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
EasyExcel.write(response.getOutputStream(), clazz)
.autoCloseStream(Boolean.FALSE)
.sheet(sheetName)
.doWrite(list);
} catch (Exception e) {
// 重置response
response.reset();
response.setContentType(GlobalConstant.APPLICATION_JSON_VALUE);
response.setCharacterEncoding(GlobalConstant.UTF8);
Map<String, Object> map = new HashMap<>();
map.put("status", 500);
map.put("message", "下载文件失败" + e.getMessage());
response.getWriter().println(JSON.toJSONString(map));
}
}