咕噜咕噜502 2022-05-07 16:22 采纳率: 56.6%
浏览 726
已结题

使用easyExcel从浏览器下载excel响应乱码

service层封装好数据后调用easyExcel生成表格并从浏览器下载

img


生成下载代码

img


前端返回200成功,但是响应乱码

img


文件也没有在浏览器下载下来。

找到问题所在了,乌龙了,前端调用没写好,对前端不是很熟悉.

img

img

  • 写回答

2条回答 默认 最新

  • AbelEthan 2022-05-07 17:43
    关注
    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));
        }
    }
    
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 5月9日
  • 修改了问题 5月9日
  • 修改了问题 5月7日
  • 修改了问题 5月7日
  • 展开全部

悬赏问题

  • ¥15 单纯型python实现编译报错
  • ¥15 c++2013读写oracle
  • ¥15 c++ gmssl sm2验签demo
  • ¥15 关于模的完全剩余系(关键词-数学方法)
  • ¥15 有没有人懂这个博图程序怎么写,还要跟SFB连接,真的不会,求帮助
  • ¥15 PVE8.2.7无法成功使用a5000的vGPU,什么原因
  • ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
  • ¥15 安装quartus II18.1时弹出此error,怎么解决?
  • ¥15 keil官网下载psn序列号在哪
  • ¥15 想用adb命令做一个通话软件,播放录音