摘要:该代码实现了一个危化品车辆登记信息导出功能。当未指定开始和结束日期时,默认导出最近30天的数据。通过SimpleDateFormat处理日期格式,查询数据后使用JeecgEntityExcelView进行Excel导出,并设置了导出文件名、数据类型和图片存储路径等参数。导出功能包含用户信息记录,支持自定义查询时间段,最终将数据列表通过ModelAndView返回生成Excel文件。
一、先查询出要导出的数据
二、放入ModelAndView中
//下载的文件路径 @Value("${jeecg.path.upload}") private String upLoadPath; /** * 传入 startDate 开始时间如 2023-08-01 结束时间 endDate * @param statVo * @return */ @ApiOperation(value="信息", notes="信息") @RequestMapping("/exportXls") public ModelAndView exportXls(StatVo statVo){ //如果没有开始时间和结束时间则 查询 前30日内的数据 if ((statVo.getStartDate()==null || statVo.getStartDate().equals("")) && (statVo.getEndDate()==null || statVo.getEndDate().equals(""))){ // 只格式化年月日 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Calendar calendar = Calendar.getInstance(); // 今天 Date today = calendar.getTime(); String todayStr = sdf.format(today); //获取当前时间赋值给结束时间 statVo.setEndDate(todayStr); // 往前30天 //前30天时间 赋值给 开始时间 calendar.add(Calendar.DAY_OF_MONTH, -30); Date before30Date = calendar.getTime(); String before30Str = sdf.format(before30Date); statVo.setStartDate(before30Str); } //查询出要导出的数据 List<KjzhWhclDengjInfo> pageList = kjService.queryWhpList(statVo); //导出人用户 LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); String title = "危化品车辆登记信息"; // Step.3 AutoPoi 导出Excel ModelAndView mv = new ModelAndView(new JeecgEntityExcelView()); //此处设置的filename无效 ,前端会重更新设置一下 mv.addObject(NormalExcelConstants.FILE_NAME, title); mv.addObject(NormalExcelConstants.CLASS, KjzhWhclDengjInfo.class); //update-begin--Author:liusq Date:20210126 for:图片导出报错,ImageBasePath未设置-------------------- ExportParams exportParams=new ExportParams(title + "报表", "导出人:" + sysUser.getRealname(), title); exportParams.setImageBasePath(upLoadPath); //update-end--Author:liusq Date:20210126 for:图片导出报错,ImageBasePath未设置---------------------- mv.addObject(NormalExcelConstants.PARAMS,exportParams); mv.addObject(NormalExcelConstants.DATA_LIST, pageList); return mv; }