EasyExcel导出模板


@Controller
public class DataDtoController  extends AbstractBaseController implements DataDtoFacade {
    @Override
    public  void qury(HttpServletResponse response) {
        List<DataDto> arrayList = new ArrayList<>();
         DataDto dataDto=new DataDto();
         arrayList.add(dataDto);

        try {
           String fileName = "模板" + DateUtil.getYMD() + ExcelTypeEnum.XLSX.getValue();
            sendHeadTest(response, fileName);
            ServletOutputStream out = response.getOutputStream();
            ExcelWriter writer = new ExcelWriter(out, ExcelTypeEnum.XLSX, true);
            Sheet sheet = new Sheet(1, 0, DataDto.class);
            //设置自适应宽度
            sheet.setAutoWidth(Boolean.TRUE);
            // 第一个 sheet 名称
            sheet.setSheetName("模板");
            writer.write(arrayList, sheet);
            writer.finish();
            out.close();
        } catch (Exception e) {
             throw  new BizBaseRuntimeException(BaseExceptionEnum.FAIL.code(), "导出模板失败");
        }


    }

    /**
     * 设置请求头
     *
     * @author lyk
     * @date 2022/7/14 15:37
     * @param response HttpServlet响应
     */
    public static void sendHeadTest(HttpServletResponse response, String fileName) throws UnsupportedEncodingException {

        URLEncoder.encode("test","UTF-8");
        response.setContentType("application/vnd.ms-excel");
        response.setCharacterEncoding("utf-8");
        response.setHeader("Access-Control-Expose-Headers","Content-disposition");
        response.setHeader("Content-disposition","attachment;filename=" + fileName);
        /*+ ".xlsx"*/

    }

实体类

@Data
public class DataDto  extends BaseRowModel {
  /*  url	headKey	headValue	paramsKey	paramsValue	bodyJson*/
    @ExcelProperty("url")
    private  String url;
    @ExcelProperty("way")
    private  String way;
    @ExcelProperty("headKey")
    private  String headKey;
    @ExcelProperty("headValue")
    private  String headValue;
    @ExcelProperty("paramsKey")
    private  String paramsKey;
    @ExcelProperty("paramsValue")
    private  String paramsValue;
    @ExcelProperty("bodyJson")
    private  String bodyJson;
    @ExcelProperty("注 :way列:1代表Get请求 2代表Post请求")
     private  String zhushi;
}

工具类

//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//

package com.alibaba.excel.support;

import java.io.IOException;
import java.io.InputStream;
import org.apache.poi.poifs.filesystem.FileMagic;

public enum ExcelTypeEnum {
    XLS(".xls"),
    XLSX(".xlsx");

    private String value;

    private ExcelTypeEnum(String value) {
        this.setValue(value);
    }

    public String getValue() {
        return this.value;
    }

    public void setValue(String value) {
        this.value = value;
    }

    public static ExcelTypeEnum valueOf(InputStream inputStream) {
        try {
            if (!inputStream.markSupported()) {
                return null;
            } else {
                FileMagic fileMagic = FileMagic.valueOf(inputStream);
                if (FileMagic.OLE2.equals(fileMagic)) {
                    return XLS;
                } else {
                    return FileMagic.OOXML.equals(fileMagic) ? XLSX : null;
                }
            }
        } catch (IOException var2) {
            throw new RuntimeException(var2);
        }
    }
}

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值