EasyExcel动态列导出
@Override
public void doExport(HttpServletResponse httpServletResponse, PersonnelAttendanceQuery query) {
List<PersonnelAttendanceVo> personnelAttendanceVoList = getList(query);
List<List<String>> list = new ArrayList<>();
//标题
List<String> rowList0 = new ArrayList<>();
rowList0.add("工号");
rowList0.add("姓名");
rowList0.add("部门");
List<DateItemVo> dateItemVoBetweenList = DateWeekUtil.getDateItemVoBetween(query.getStartTime(), query.getEndTime());
for(DateItemVo dateItemVo:dateItemVoBetweenList){
DateItemVo today = DateWeekUtil.getToday(new Date());
if(today.getTimeInfoShort().equals(dateItemVo.getTimeInfoShort())){
//rowList0.add("今天"+" "+dateItemVo.getWeekName());
rowList0.add("今天");
}else{
rowList0.add(dateItemVo.getTimeInfoShort());
}
}
list.add(rowList0);
for(PersonnelAttendanceVo attendanceVo:personnelAttendanceVoList){
List<String> rowList = new ArrayList<>();
rowList.add(attendanceVo.getJobNo());
rowList.add(attendanceVo.getName());
rowList.add(attendanceVo.getDeptName());
//rowList.add(attendanceVo.getGroupName());
if(StringUtils.isNotBlank(attendanceVo.getGroupName()) && CollectionUtils.isNotEmpty(attendanceVo.getPersonnelAttendanceItemVoList())){
String kaoQinTime = "";
for(PersonnelAttendanceItemVo personnelAttendanceItemVo:attendanceVo.getPersonnelAttendanceItemVoList()){
if(CollectionUtils.isNotEmpty(personnelAttendanceItemVo.getPersonnelAttendanceMapItemVoList())){
kaoQinTime = kaoQinTime +attendanceVo.getGroupName()+"\n";
for(PersonnelAttendanceMapItemVo personnelAttendanceMapItemVo:personnelAttendanceItemVo.getPersonnelAttendanceMapItemVoList()){
//kaoQinTime = kaoQinTime + personnelAttendanceMapItemVo.getConstantSettingInfo()+"\n";
kaoQinTime = kaoQinTime + personnelAttendanceMapItemVo.getWorkName()+"\n"+personnelAttendanceMapItemVo.getWorkTimeStart()+"-"+personnelAttendanceMapItemVo.getWorkTimeEnd()+"\n";
}
}
rowList.add(kaoQinTime);
kaoQinTime = "";
}
}
list.add(rowList);
}
try {
exportUtil.export("人员考勤导出模板.xlsx", list, httpServletResponse);
} catch (IOException e) {
throw new ServiceException("导出文件失败!");
}
}
public static void exportData( ) {
List<List<String>> list = new ArrayList<>();
List<String> rowList = Arrays.asList("row1\n哈哈","row2\n哈哈","row3\n哈哈");
list.add(rowList);
list.add(rowList);
// 创建ExcelWriter对象
ExcelWriter excelWriter = EasyExcel.write("导出文件1.xlsx").build();
// 创建Sheet对象
WriteSheet writeSheet = EasyExcel.writerSheet("Sheet1").build();
// 自定义写入处理器,将日期列表写入单独的单元格
// DateInfoDynamicWriteHandler writeHandler = new DateInfoDynamicWriteHandler(dateInfoList);
// 写入数据
excelWriter.write(list, writeSheet);
// 关闭ExcelWriter对象
excelWriter.finish();
}