1. @GetMapping("getExcel")
    2. @ApiOperation(value = "获取excel")
    3. public void getExcel(HttpServletResponse response) {
    4. ExcelWriter writer = null;
    5. ServletOutputStream out = null;
    6. try {
    7. List<Map<String, Object>> rows = service.getTarget(null);
    8. // 通过工具类创建writer,默认创建xls格式
    9. writer = ExcelUtil.getWriter();
    10. // 自定义标题别名
    11. writer.addHeaderAlias("api_id", "ID");
    12. writer.addHeaderAlias("factory", "厂别");
    13. writer.addHeaderAlias("type_name", "类别");
    14. writer.addHeaderAlias("target", "目标");
    15. writer.addHeaderAlias("max_limit", "最大值");
    16. writer.addHeaderAlias("min_limit", "最小值");
    17. // 一次性写出内容,使用默认样式,强制输出标题
    18. writer.write(rows, true);
    19. // out为OutputStream,需要写出到的目标流
    20. // response为HttpServletResponse对象
    21. response.setContentType("application/vnd.ms-excel;charset=utf-8");
    22. // test.xls是弹出下载对话框的文件名,不能为中文,中文请自行编码
    23. response.setHeader("Content-disposition",
    24. "attachment;filename=" + URLEncoder.encode("Flow标准数据导出.xls", "UTF-8"));// 设置头部信息
    25. out = response.getOutputStream();
    26. writer.flush(out, true);
    27. } catch (IOException e) {
    28. // TODO Auto-generated catch block
    29. e.printStackTrace();
    30. } finally {
    31. if (writer != null) {
    32. // 关闭writer,释放内存
    33. writer.close();
    34. }
    35. if (out != null) {
    36. // 此处记得关闭输出Servlet流
    37. IoUtil.close(out);
    38. }
    39. }
    40. }