public void getexport(Ambassador ambassador,HttpServletResponse response) {
//查询语句 List<Ambassador> ambassadorList = rwAmbassadorApplyMapper.selectExport(ambassador);
//创建一个新的list集合存放过滤之后的数据
List<AmbassadorVo> detailVos = new ArrayList<>(); for(Ambassador info : ambassadorList) {
//创建一个新的实体类,该实体类放入导出需要的字段名称 AmbassadorVo vo = new ambassadorVo(); vo.setName(info.getName()); vo.setPhone(info.getPhone()); vo.setProductId(info.getProductId()); vo.setTime(info.getTime()); detailVos.add(vo); }
//获取当前日期 String currDate = DateUtil.getCurrentDateStr("yyyy-MM-dd"); StringBuffer buff = new StringBuffer("导出xxx"); //下载 String fileName = buff.append("_").append(currDate).append(".xlsx").toString();
//导出文件存放的目录路径 String path = SysConfig.getConfig("path");
List<List<String>> head = getHead(); EasyExcel.write(path + File.separator + fileName).head(head).registerWriteHandler(new CustomCellWriteHandler()) .sheet("导出xxx").doWrite(detailVos); try { export(response, fileName); log.info("文件导出成功"); } catch (Exception e) { e.printStackTrace(); log.error("文件导出失败"); } } public List<List<String>> getHead() { List<List<String>> head = new ArrayList<>(); List<String> col1 = new ArrayList<>(); List<String> col2 = new ArrayList<>(); List<String> col3 = new ArrayList<>(); List<String> col4 = new ArrayList<>(); col1.add("用户名"); col2.add("手机号"); col3.add("产品"); col4.add("时间"); head.add(col1); head.add(col2); head.add(col3); head.add(col4); return head; }
protected void export(HttpServletResponse response, String fileName) throws Exception { response.setCharacterEncoding("UTF-8"); response.addHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8")); if (fileName.endsWith(".xlsx")) { response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); } else { response.setContentType("application/octet-stream"); } File file = new File(SysConfig.getConfig("path"), fileName); try (FileInputStream fileInputStream = new FileInputStream(file); InputStream is = new MultipartInputStream(fileInputStream);) { FileCopyUtils.copy(is, response.getOutputStream()); } finally { if (file.exists()) { FileUtils.deleteQuietly(file); } } }
/**
*导出需要的实体类
**/
@Data public class AmbassadorVo { /** 用户名 **/
/** 根据导出需要的顺序填写index值,防止导出的数据位置不正确 **/
@ExcelProperty(value = "用户名", index = 0) private String name; /** 手机号 **/ @ExcelProperty(value = "手机号", index = 1) private String phone; /** 产品 **/ @ExcelProperty(value = "产品", index = 2) private String productId; /** 时间 **/ @ExcelProperty(value = "时间", index = 3) private String time; }