1.要导出一个excel模板为这种格式的数据,刚拿到的时候头都大了,不知道怎么去做字段和表头的映射,以及怎样做根据月份不同日期显示天数和星期的问题,最后结尾插入备注也是不知道怎么搞,最开始想用EasyExcel写的,后面发现操作单元格官网提供的方法太少了也没什么demo,然后就很emo,emo着emo着求助大佬,大佬说那你换成POI去写吧~!!!!!!!!!!!
2.思路,首先呢解决月份天数和星期的问题,本来我也想直接后台操作代码直接生成跟上述模板表格一样的表格,后面发现工作量好大,而且那个斜线表格我画不出来!!!!!!!后面就干脆改成根据获取到的模板往里头插入对应日期的数据,这样子操作就比刚开始的想法好的多了,然后就根据月份的天数定义了四个这样子的模板,如下图所示:
后台会根据前端传入的月份去获取到对应的四种模板中对应的天数一样的那个模板,后面po出代码,结尾问题也搞定了,所需要做的事情就是往中间插入数据
3.代码部分
①Controller层
@ApiOperation(value = "考勤表导出数据", notes = "考勤表导出数据") @RequestMapping("/exportKqb") public void exportKqb(@RequestParam(required = false) String kqzId, @RequestParam String ssdw, @RequestParam String beginTime, @RequestParam String endTime, HttpServletResponse response ) throws ParseException, IOException { if (StringUtils.isEmpty(ssdw)) { ssdw = getUnitDm(); } SysUnit unit = unitService.getByDwdm(ssdw); String[] strings = beginTime.split("-"); String title = unit.getMc() + strings[0] + "年" + strings[1] + "月人员考勤表"; List<ExcelDkVO> data = dkjlService.getKqData(ssdw, beginTime, endT