需要添加的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;
導出的效果: