导出excel

pom

    <dependency>
      <groupId>cn.afterturn</groupId>
      <artifactId>easypoi-base</artifactId>
      <version>3.2.0</version>
    </dependency>
    <dependency>
      <groupId>cn.afterturn</groupId>
      <artifactId>easypoi-web</artifactId>
      <version>3.2.0</version>
    </dependency>
    <dependency>
      <groupId>cn.afterturn</groupId>
      <artifactId>easypoi-annotation</artifactId>
      <version>3.2.0</version>
    </dependency>

实体类子类

@Data
public class ERMSUseExport {

    @Excel(name = "档案名称",width = 30)
    private String archName;

    @Excel(name = "档案编号",width = 30)
    private String archNo;

    @Excel(name = "借阅方式",width = 20 ,replace = {"在线查看_0","现场查看_1","原件借出_2"})
    private String ermsApplymode;

    @Excel(name = "借出时间",width = 30)
    private Date startUseDate;

    @Excel(name = "借出受理人",width = 20)
    private String ermsLendhandler;

    @Excel(name = "借出审核人",width = 20)
    private String ermsBorrowReviewer;

    @Excel(name = "归还时间",width = 30)
    private Date ermsReturntime;

    @Excel(name = "归还人",width = 20)
    private Date ermsReturner;

    @Excel(name = "归还受理人",width = 20)
    private Date ermsReturnhandler;

    @Excel(name = "归还复核人",width = 20)
    private Date ermsReturnReviewer;

}

实体类父类

@Data
public class ErmsUseMainExport implements Serializable {

    private static final long serialVersionUID = 1L;


    /**
     * 借阅编号
     */
    @Excel(name = "借阅单编号", width = 20, needMerge = true)
    private String useNo;

    /**
     * 借阅人
     */
    @Excel(name = "申请人", width = 20, needMerge = true)
    private String ermsLender;

    /**
     * 借阅目的
     */
    @Excel(name = "借阅目的", width = 20, needMerge = true)
    private String ermsLendingpurpose;

    //子条目集合(这里是实现一对多的关键。name=""是为了不出现表头,如果不为空表头会多一层合并的单元格)
    @ExcelCollection(name = "")
    private List<ERMSUseExport> archList;
}

导出文件

 @GetMapping("/export")
    public void toList(HttpServletResponse response) throws UnsupportedEncodingException {

        try {
            //获取导出数据
            List<ErmsUseMainExport> mainList = new ArrayList<ErmsUseMainExport>();
            ErmsUseMainExport export = new ErmsUseMainExport();
            export.setUseNo("aaa");
            export.setErmsLendingpurpose("bbb");
            export.setErmsLender("ccc");
            List<ERMSUseExport> archList = new ArrayList<ERMSUseExport>();
            ERMSUseExport ermsUseExport = new ERMSUseExport();
            ermsUseExport.setArchNo("1111");
            ermsUseExport.setArchName("22222");
            ermsUseExport.setErmsBorrowReviewer("3333");
            archList.add(ermsUseExport);
            archList.add(ermsUseExport);
            export.setArchList(archList);
            mainList.add(export);
            // 简单模板导出方法
            ExportParams params = new ExportParams();
            params.setSheetName("借阅单");//设置sheet名
            Workbook workbook = ExcelExportUtil.exportExcel(params, ErmsUseMainExport.class, mainList);
            //返回头设置下载,并设置文件名,返回
            setExportExcelFormat(response, workbook, "借阅单导出");
        } catch (Exception e) {
            System.out.println(e);
        }


    }

    private void setExportExcelFormat(HttpServletResponse response, Workbook workbook, String fileName) throws Exception {
        response.reset();
        response.setContentType("application/x-msdownload");//下载
        fileName = fileName + new SimpleDateFormat("yyyyMMddHHmmss").format(new Date());
        response.setHeader("Content-disposition", "attachment; filename=" + new String(fileName.getBytes("gb2312"), "ISO-8859-1") + ".xls");
        ServletOutputStream outStream = null;
        try {
            outStream = response.getOutputStream();
            workbook.write(outStream);
        } finally {
            outStream.close();
        }

    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值