Controller
/**
*------导出
*
* @param response
* @param ids
* @return
*/
@ApiOperation(value = "")
@RequestMapping("/talentExport")
private Object talentExport(HttpServletResponse response, String[] ids) {
try {
return this.buildSuccess(hrrgComEvaService.talentExport(response, ids));
} catch (Exception exp) {
return this.buildFaild(exp.getMessage());
}
service
public Object talentExport(HttpServletResponse response, String[] ids) {
List<String> idList = Arrays.asList(ids);
if (CollectionUtil.isEmpty(idList)) {
throw new RuntimeException("请选择需要导出的数据");
}
//查询主表数据
List<HrrgComEvaDto> hrrgComEvaList = hrrgComEvaMapper.talentExport(idList);
//查询子表数据
List<HrrgEvaDimInfoDto> hrrgEvaDimInfoList = hrrgEvaDimInfoMapper.talentExport(idList);
//响应格式设置
response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding("utf-8");
try {
String fileName = URLEncoder.encode("excel名称导出", "UTF-8");
response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xls");
//新建ExcelWriter
ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).build();
//获取sheet0对象
WriteSheet mainSheet = EasyExcel.writerSheet(0, "页签名称").head(HrrgComEvaDto.class).build();
WriteSheet mainSheet1 = EasyExcel.writerSheet(1, "页签名称").head(HrrgEvaDimInfoDto.class).build();
//向sheet0写入数据 传入空list这样只导出表头
excelWriter.write(hrrgComEvaList, mainSheet);
excelWriter.write(hrrgEvaDimInfoList, mainSheet1);
//关闭流
excelWriter.finish();
} catch (IOException e) {
throw new RuntimeException("导出数据失败");
}
return "导出成功";
}