在之前,我们处理Excel导入导出相关需求时,我们常用的是使用Apache POI来操作Excel。经常使用的步骤是
// 获取excel工作簿对象
HSSFWorkbook workBook = new HSSFWorkbook(new FileInputStream(file));
// 获得指定的excel表
HSSFSheet sheet = workbook.getSheetAt(0);
然后循环遍历sheet,结合sheet.getRow(index)
和row.getCell(index)
,取得单元格数据后再一个值一个值set到对应的POJO中,代码繁琐且不美观。
由此,我们使用了更加简单、便捷的EasyPoi,通过简单的注解和模版,就可以完成Excel的导入、导出。
本文主要来讲解如何使用EasyPoi的注解来完成简单的Excel导入、导出操作。
常用注解说明
@Excel
@Excel注解是用于filed字段上,说明一个Excel的列属性。其中常用的属性有:
- name: Excel中的列名
- width:单元格的宽度
- needMerge: 是否需要纵向合并单元格
- replace: 属性值替换,eg.{"线上活动_0", "线下活动_1"}
- format: 时间格式。
- desensitizationRule: 脱敏处理。eg.身份证号脱敏,可以设置为"3_4",即保留前3后4,其余展示为*
@ExcelCollection
@ExcelCollection 表示一个集合,可以用于表示一对多关系。
@ExcelIgnore
@ExcelIgnore 导入导出时需要忽略的字段。
集成EasyPoi
在pom.xml中添加依赖即可。
<!-- easypoi -->
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-spring-boot-starter</artifactId>
<version>4.4.0</version>
</dependency>
导出Excel
1、首先我们先创建一个峰会活动对象SummitActivityVO
/**
* 峰会活动VO对象
* @author liujianfeng
* @date 2021-11-04
*/
@Data
public class SummitActivityVO {
/**
* 活动id
*/
@Excel(name = "ID", width = 10, needMerge = true)
private Long id;
/**
* 活动名称
*/
@Excel(name = "活动名称", width = 20, needMerge = true)
private String activityName;
/**
* 活动类型
*/
@Excel(name = "活动类型", width = 10, replace = {"线上活动_0", "线下活动_1"}, needMerge = true)
private String activityType;
/**
* 活动地点
*/
@Excel(name = "活动地点", width = 40, needMerge = true)
private String activityAddress;
/**
* 活动开始时间
*/
@Excel(name = "活动开始时间", width = 20, format = "yyyy-MM-dd HH:mm:ss", needMerge = true)
private Date activityStartTime;
/**
* 活动开始时间
*/
@Excel(name = "活动结束时间", width = 20, format = "yyyy-MM-dd HH:mm:ss", needMerge = true)
private Date activityEndTime;
/**
* 活动下的议程列表
*/
@ExcelCollection(name = "议程列表")
@ExcelEntity
private List<SummitAgendaVO> agendaList;
}
其中SummitActivityVO
包含一个类型为SummitAgendaVO
的List对象agendaList。
2、创建峰会议程对象SummitAgendaVO
/**
* 峰会议程
* @author liujianfeng
* @date 2021-11-04
*/
@Data
public class SummitAgendaVO {
/**
* 议程ID
*/
@ExcelIgnore
private Long id;
/**
* 关联的活动id
*/
@ExcelIgnore
private Long activityId;
/**
* 议程名称
*/
@Excel(name = "议程名称", width = 30)
private String agendaName;
/**
* 议程内容
*/
@Excel(name = "议程内容", width = 100)
private String agendaContent;
/**
* 议程开始时间
*/
@Excel(name = "议程开始时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
private Date agendaStartTime;
/**
* 议程结束时间
*/
@Excel(name = "议程开始时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
private Date agendaEndTime;
}
3、创建好的导出对象之后,我们mock下导出数据
private List<SummitActivityVO> handleExportData() {
List<SummitActivityVO> summitActivityList = new ArrayList<>();
for (int i=0; i<10; i++) {
SummitActivityVO summitActivityVO = new SummitActivityVO();
summitActivityVO.setId((long) i);
summitActivityVO.setActivityName("活动名称_" + i);
summitActivityVO.setActivityAddress("活动地点" + i);
summitActivityVO.setActivityType("0");
summitActivityVO.setActivityStartTime(new Date());
summitActivityList.add(summitActivityVO);
List<SummitAgendaVO> agendaList = new ArrayList<>();
for (int j=0; j<10; j++) {
SummitAgendaVO summitAgendaVO = new SummitAgendaVO();
summitAgendaVO.setId((long) j);
summitAgendaVO.setActivityId((long) i);
summitAgendaVO.setAgendaName("议程名称_" + j);
summitAgendaVO.setAgendaContent("这个是活动名称" + i + "的第"+ j + "个议程的议程内容");
summitAgendaVO.setAgendaStartTime(new Date());
agendaList.add(summitAgendaVO);
}
summitActivityVO.setAgendaList(agendaList);
}
return summitActivityList;
}
接下来在Controller中新增一个导出模拟数据的接口
@ResponseBody
@RequestMapping("exportExcel")
public void exportExcelWithEasyPoi(HttpServletRequest request, HttpServletResponse response) {
List<SummitActivityVO> dataList = handleExportData();
ExportParams params = new ExportParams("活动信息", "活动列表");
ModelMap map = new ModelMap();
map.put(NormalExcelConstants.PARAMS, params);
map.put(NormalExcelConstants.CLASS, SummitActivityVO.class);
map.put(NormalExcelConstants.DATA_LIST, dataList);
map.put(NormalExcelConstants.FILE_NAME, "活动信息列表");
PoiBaseView.render(map, request, response, NormalExcelConstants.EASYPOI_EXCEL_VIEW);
}
4、运行项目,调用Controller中的exportExcel
方法,下载Excel到本地。这样子就可以完成简单的Excel导出了。
导入Excel
在Controller中新增Excel导入接口
@ResponseBody
@RequestMapping("importExcel")
public DataResult<Boolean> importSummitActivity(String pathname) {
File file = new File(pathname);
ImportParams params = new ImportParams();
params.setTitleRows(1);
params.setHeadRows(2);
List<SummitActivityVO> importList = ExcelImportUtil.importExcel(file, SummitActivityVO.class, params);
log.info(StringUtils.join(importList, ","));
log.info("import success");
return DataResult.success(Boolean.TRUE, "导入成功");
}
运行代码后,在浏览器上访问http://localhost:8080/easyPoi/importExcel?pathname=/Users/liujianfeng/Downloads/活动信息列表-4.xlsx
,将exportExcel
方法导出的Excel导入,我们将在控制台上看到获取到的数据
INFO 60577 --- [nio-8080-exec-1] c.e.ljf.controller.EasyPoiController : SummitActivityVO(id=0, activityName=活动名称_0, activityType=0, activityAddress=活动地点0, activityStartTime=Wed Nov 10 01:26:03 CST 2021, activityEndTime=null, agendaList=[SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_0, agendaContent=这个是活动名称0的第0个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_1, agendaContent=这个是活动名称0的第1个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_2, agendaContent=这个是活动名称0的第2个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_3, agendaContent=这个是活动名称0的第3个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_4, agendaContent=这个是活动名称0的第4个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_5, agendaContent=这个是活动名称0的第5个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_6, agendaContent=这个是活动名称0的第6个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_7, agendaContent=这个是活动名称0的第7个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_8, agendaContent=这个是活动名称0的第8个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_9, agendaContent=这个是活动名称0的第9个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021)]),SummitActivityVO(id=1, activityName=活动名称_1, activityType=0, activityAddress=活动地点1, activityStartTime=Wed Nov 10 01:26:03 CST 2021, activityEndTime=null, agendaList=[SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_0, agendaContent=这个是活动名称1的第0个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_1, agendaContent=这个是活动名称1的第1个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_2, agendaContent=这个是活动名称1的第2个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_3, agendaContent=这个是活动名称1的第3个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_4, agendaContent=这个是活动名称1的第4个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_5, agendaContent=这个是活动名称1的第5个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_6, agendaContent=这个是活动名称1的第6个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_7, agendaContent=这个是活动名称1的第7个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_8, agendaContent=这个是活动名称1的第8个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_9, agendaContent=这个是活动名称1的第9个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021)]),SummitActivityVO(id=2, activityName=活动名称_2, activityType=0, activityAddress=活动地点2, activityStartTime=Wed Nov 10 01:26:03 CST 2021, activityEndTime=null, agendaList=[SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_0, agendaContent=这个是活动名称2的第0个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_1, agendaContent=这个是活动名称2的第1个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_2, agendaContent=这个是活动名称2的第2个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_3, agendaContent=这个是活动名称2的第3个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_4, agendaContent=这个是活动名称2的第4个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_5, agendaContent=这个是活动名称2的第5个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_6, agendaContent=这个是活动名称2的第6个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_7, agendaContent=这个是活动名称2的第7个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_8, agendaContent=这个是活动名称2的第8个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_9, agendaContent=这个是活动名称2的第9个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021)]),SummitActivityVO(id=3, activityName=活动名称_3, activityType=0, activityAddress=活动地点3, activityStartTime=Wed Nov 10 01:26:03 CST 2021, activityEndTime=null, agendaList=[SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_0, agendaContent=这个是活动名称3的第0个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_1, agendaContent=这个是活动名称3的第1个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_2, agendaContent=这个是活动名称3的第2个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_3, agendaContent=这个是活动名称3的第3个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_4, agendaContent=这个是活动名称3的第4个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_5, agendaContent=这个是活动名称3的第5个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_6, agendaContent=这个是活动名称3的第6个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_7, agendaContent=这个是活动名称3的第7个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_8, agendaContent=这个是活动名称3的第8个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_9, agendaContent=这个是活动名称3的第9个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021)]),SummitActivityVO(id=4, activityName=活动名称_4, activityType=0, activityAddress=活动地点4, activityStartTime=Wed Nov 10 01:26:03 CST 2021, activityEndTime=null, agendaList=[SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_0, agendaContent=这个是活动名称4的第0个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_1, agendaContent=这个是活动名称4的第1个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_2, agendaContent=这个是活动名称4的第2个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_3, agendaContent=这个是活动名称4的第3个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_4, agendaContent=这个是活动名称4的第4个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_5, agendaContent=这个是活动名称4的第5个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_6, agendaContent=这个是活动名称4的第6个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_7, agendaContent=这个是活动名称4的第7个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_8, agendaContent=这个是活动名称4的第8个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_9, agendaContent=这个是活动名称4的第9个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021)]),SummitActivityVO(id=5, activityName=活动名称_5, activityType=0, activityAddress=活动地点5, activityStartTime=Wed Nov 10 01:26:03 CST 2021, activityEndTime=null, agendaList=[SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_0, agendaContent=这个是活动名称5的第0个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_1, agendaContent=这个是活动名称5的第1个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_2, agendaContent=这个是活动名称5的第2个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_3, agendaContent=这个是活动名称5的第3个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_4, agendaContent=这个是活动名称5的第4个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_5, agendaContent=这个是活动名称5的第5个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_6, agendaContent=这个是活动名称5的第6个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_7, agendaContent=这个是活动名称5的第7个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_8, agendaContent=这个是活动名称5的第8个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_9, agendaContent=这个是活动名称5的第9个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021)]),SummitActivityVO(id=6, activityName=活动名称_6, activityType=0, activityAddress=活动地点6, activityStartTime=Wed Nov 10 01:26:03 CST 2021, activityEndTime=null, agendaList=[SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_0, agendaContent=这个是活动名称6的第0个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_1, agendaContent=这个是活动名称6的第1个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_2, agendaContent=这个是活动名称6的第2个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_3, agendaContent=这个是活动名称6的第3个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_4, agendaContent=这个是活动名称6的第4个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_5, agendaContent=这个是活动名称6的第5个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_6, agendaContent=这个是活动名称6的第6个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_7, agendaContent=这个是活动名称6的第7个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_8, agendaContent=这个是活动名称6的第8个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_9, agendaContent=这个是活动名称6的第9个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021)]),SummitActivityVO(id=7, activityName=活动名称_7, activityType=0, activityAddress=活动地点7, activityStartTime=Wed Nov 10 01:26:03 CST 2021, activityEndTime=null, agendaList=[SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_0, agendaContent=这个是活动名称7的第0个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_1, agendaContent=这个是活动名称7的第1个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_2, agendaContent=这个是活动名称7的第2个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_3, agendaContent=这个是活动名称7的第3个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_4, agendaContent=这个是活动名称7的第4个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_5, agendaContent=这个是活动名称7的第5个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_6, agendaContent=这个是活动名称7的第6个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_7, agendaContent=这个是活动名称7的第7个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_8, agendaContent=这个是活动名称7的第8个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_9, agendaContent=这个是活动名称7的第9个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021)]),SummitActivityVO(id=8, activityName=活动名称_8, activityType=0, activityAddress=活动地点8, activityStartTime=Wed Nov 10 01:26:03 CST 2021, activityEndTime=null, agendaList=[SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_0, agendaContent=这个是活动名称8的第0个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_1, agendaContent=这个是活动名称8的第1个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_2, agendaContent=这个是活动名称8的第2个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_3, agendaContent=这个是活动名称8的第3个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_4, agendaContent=这个是活动名称8的第4个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_5, agendaContent=这个是活动名称8的第5个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_6, agendaContent=这个是活动名称8的第6个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_7, agendaContent=这个是活动名称8的第7个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_8, agendaContent=这个是活动名称8的第8个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_9, agendaContent=这个是活动名称8的第9个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021)]),SummitActivityVO(id=9, activityName=活动名称_9, activityType=0, activityAddress=活动地点9, activityStartTime=Wed Nov 10 01:26:03 CST 2021, activityEndTime=null, agendaList=[SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_0, agendaContent=这个是活动名称9的第0个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_1, agendaContent=这个是活动名称9的第1个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_2, agendaContent=这个是活动名称9的第2个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_3, agendaContent=这个是活动名称9的第3个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_4, agendaContent=这个是活动名称9的第4个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_5, agendaContent=这个是活动名称9的第5个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_6, agendaContent=这个是活动名称9的第6个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_7, agendaContent=这个是活动名称9的第7个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_8, agendaContent=这个是活动名称9的第8个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021), SummitAgendaVO(id=null, activityId=null, agendaName=议程名称_9, agendaContent=这个是活动名称9的第9个议程的议程内容, agendaStartTime=null, agendaEndTime=Wed Nov 10 01:26:03 CST 2021)])
INFO 60577 --- [nio-8080-exec-1] c.e.ljf.controller.EasyPoiController : import success
以上内容就是在Spring Boot项目中使用EasyPoi实现Excel的简单导入和导出功能。此外EasyPoi还支持Html和模板的导出,下次再研究分享。