一、什么是EasyPOI?
easypoi功能如同名字easy,主打的功能就是容易,让一个没见接触过poi的人员就可以方便的写出Excel导出,Excel模板导出,Excel导入,Word模板导出,通过简单的注解和模板语言(熟悉的表达式语法),完成以前复杂的写法,虽然不如poi那么自定义,不如jxl那么多标签,但是我们就是写的少,写的少。
二、快速入门
2.1、注解
@Excel
这个是必须使用的注解,如果需求简单只使用这一个注解也是可以的,涵盖了常用的Excel需求,需要大家熟悉这个功能,主要分为基础,图片处理,时间处理,合并处理几块.
@ExcelTarget
限定一个到处实体的注解,以及一些通用设置,作用于最外面的实体.
@ExcelEntity
标记是不是导出excel,标记为实体类,是一个内部属性类,标记是否继续穿透。
@ExcelCollection
一对多的集合注解,用以标记集合是否被数据以及集合的整体排序。
@ExcelIgnore
忽略这个属性,多使用需循环引用中。
2.2 直接上例子
第一步,对象定义
@ExcelTarget(value = "OvertimeRecordExcelDTO")
public class OvertimeRecordExcelDTO {
@Excel(name = "申请时间", databaseFormat = "yyyyMMddHHmmss", format = "yyyy-MM-dd HH:mm:ss", width = 20, needMerge = true)
private Date applicationTime;
@ExcelEntity(name = "员工信息",show = true)
private UserInfoExcelDTO userInfo;
@ExcelEntity(name = "加班时长",show = true)
private TimeExcelDTO time;
@Excel(name = "加班原因",orderNum = "4", needMerge = true)
private String reason;
@Excel(name = "法定假日", orderNum = "5", replace = {"是_1", "否_2"}, needMerge = true)
private String holidays;
@Excel(name = "核算方式", orderNum = "6", replace = {"调休_1", "加班费_2"}, needMerge = true)
private String summaryType;
@Excel(name = "审批状态",orderNum = "7", replace = {"待审批_1", "通过_2", "拒绝_3", "撤销_4"}, needMerge = true)
private String status;
@ExcelCollection(name = "审批流程",orderNum = "8")
private List<CheckFlowExcelDTO> flowCheckList; //审批流程解析后
……此处为get,set方法……
第二步、生成Excel
Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams("加班申请","加班"),OvertimeRecordExcelDTO .class, list);
三、详情说明
以上简单的介绍了EasyPOI的介绍,除注解方式还有模板方式和更加灵活的Map方式,详情说明可以查看期说明文档,文档地址为:http://easypoi.mydoc.io/#category_48830。