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