Browse Source

调节导出excel代码

master
453530270@qq.com 3 years ago
parent
commit
e645267a3e
  1. 27
      src/main/java/cn/chjyj/szwh/controller/admin/AdminOrderController.java
  2. 2
      urls.md

27
src/main/java/cn/chjyj/szwh/controller/admin/AdminOrderController.java

@ -194,7 +194,7 @@ public class AdminOrderController extends BaseController {
* @param request * @param request
* @throws IOException * @throws IOException
*/ */
@PostMapping(value = "/export",produces = "application/octet-stream") @PostMapping(value = "/export")
public void export(HttpServletResponse response, HttpServletRequest request) throws IOException { public void export(HttpServletResponse response, HttpServletRequest request) throws IOException {
// 获取查询条件,得到对应的数据 // 获取查询条件,得到对应的数据
JSONObject rejson = SzReqUtils.getJson(request); JSONObject rejson = SzReqUtils.getJson(request);
@ -208,22 +208,13 @@ public class AdminOrderController extends BaseController {
List<AdOrderVO> adordlist = orderService.getAdOrdlist(rmap,page,limit); List<AdOrderVO> adordlist = orderService.getAdOrdlist(rmap,page,limit);
try { try {
String dateStr = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss")); response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
String name = "WHYOTS"+dateStr;
//防止下载时中文乱码
name = new String(name.getBytes("UTF-8"), "ISO-8859-1");
response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding("utf-8");
//添加这个是防止前端拿不到Content-disposition
response.setHeader("Content-Disposition", "attachment;filename=" + name+".xlsx");
response.setHeader("Access-Control-Expose-Headers","Content-disposition");
// response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
// response.setCharacterEncoding("utf-8"); // response.setCharacterEncoding("utf-8");
// // 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系 // 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系
// //String fileName = URLEncoder.encode("测试", "UTF-8").replaceAll("\\+", "%20"); //String fileName = URLEncoder.encode("测试", "UTF-8").replaceAll("\\+", "%20");
// String fileName =UUID.randomUUID().toString(); String fileName =UUID.randomUUID().toString();
// response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx"); // Content-Disposition
response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
// 这里需要设置不关闭流 // 这里需要设置不关闭流
EasyExcel.write(response.getOutputStream(), AdOrderVO.class) EasyExcel.write(response.getOutputStream(), AdOrderVO.class)
.autoCloseStream(Boolean.FALSE) .autoCloseStream(Boolean.FALSE)
@ -236,10 +227,6 @@ public class AdminOrderController extends BaseController {
response.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8");
JSONObject otjson = AjaxResult.error("下载文件失败" + e.getMessage()); JSONObject otjson = AjaxResult.error("下载文件失败" + e.getMessage());
response.getWriter().println(otjson); response.getWriter().println(otjson);
// Map<String, String> otmap = new HashMap<>();
// otmap.put("status", "failure");
// otmap.put("message", "下载文件失败" + e.getMessage());
//response.getWriter().println(JSON.toJSONString(otmap));
} }
} }

2
urls.md

@ -53,3 +53,5 @@
https://www.cnblogs.com/thinkguo/archive/2019/08/01/11281919.html https://www.cnblogs.com/thinkguo/archive/2019/08/01/11281919.html
https://blog.csdn.net/qq_42739776/article/details/123791866 https://blog.csdn.net/qq_42739776/article/details/123791866
[Vue+easyexcel实现excel导入导出](https://blog.csdn.net/qq_42739776/article/details/123791866)
Loading…
Cancel
Save