需要添加的jar包:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.1.6</version>
</dependency>
导出的controller代码实现:
package com.ruoyi.web.controller.export;
import com.alibaba.excel.EasyExcel;
import com.google.common.collect.Lists;
import com.ruoyi.web.controller.demo.domain.UserOperateModel;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.net.URLEncoder;
import java.text.SimpleDateFormat;
import java.util.Date;
@Controller
@RequestMapping("/download")
public class Export {
private static final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
//第一种导出
@GetMapping("/download")
public void download(HttpServletResponse response) throws IOException {
// 这里注意 有同学反应使用swagger 会导致各种问题,请直接用浏览器或者用postman
response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding("utf-8");
// 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系
String fileName = URLEncoder.encode("测试", "UTF-8");
response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
EasyExcel.write(response.getOutputStream(), UserOperateModel.class).sheet("模板").doWrite(Lists.newArrayList());
}
//第二种导出
@GetMapping("/downloads")
public void downloads(HttpServletResponse response) throws IOException {
String fileName = "黑名单导入模板_" + sdf.format(new Date()) + ".xls";
response.setHeader("Content-disposition",
"attachment;filename=" + new String(fileName.getBytes("gb2312"), "ISO8859-1"));// 设置文件头编码格式
response.setContentType("APPLICATION/OCTET-STREAM;charset=UTF-8");// 设置类型
response.setHeader("Cache-Control", "no-cache");// 设置头
response.setDateHeader("Expires", 0);// 设置日期头
response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
EasyExcel.write(response.getOutputStream(), UserOperateModel.class).sheet("模板").doWrite(Lists.newArrayList());
}
}
实体类:
/**
* 忽略这个字段
*/
@ExcelIgnore
private int userId;
@ExcelProperty("用户编号")
private String userCode;
@ExcelProperty("用户姓名")
private String userName;
@ExcelProperty("用户性别")
private String userSex;
@ExcelProperty("用户手机")
private String userPhone;
@ExcelIgnore
private String userEmail;
@ExcelIgnore
private double userBalance;
@ExcelIgnore
private String status;
@ExcelIgnore
private Date createTime;
导出的效果: