在工作的过程中,遇到了一点小麻烦。
正确的写法是后端给前端一个输出流,然后前端获得输出流,在保存到用户自己的本地:
public void ExportEnterpriseInfo(@RequestBody Map names, HttpServletResponse response) throws IOException {
response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding("utf-8");
String fileName = URLEncoder.encode("企业查询结果", "UTF-8");
response.setContentType("application/force-download");
response.setHeader("Access-Control-Expose-Headers", "Content-Disposition");
response.setHeader("Content-Disposition", "attachment;filename=" + fileName + ".xlsx");
response.setHeader("Content-Type","application/octet-stream;charset=utf-8");
/**准备数据*/
List<ExportEnterpriseInfo> list = data(names);
/**导入结果流*/
EasyExcel.write(response.getOutputStream(), ExportEnterpriseInfo.class).sheet("企业查询结果").registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).doWrite(list);
}
在这个过程中还遇到了文件名乱码的问题,这是因为postman的问题,如果是浏览器下载的话,文件名是没有问题的。
一个集坚强与自信于一身的菇凉。