easyexcel導出

需要添加的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;

導出的效果:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章