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();
}
}