1.导包
2.直接在controller方法中写逻辑
@ApiOperation(value = "导出员工数据")
//注意这使用流输出 必须使用produces="application/octet-stream" 标记出来 否则 会有乱码
//形式输出 和验证码一样 也需要写这个注释
@GetMapping(value="/export",produces = "application/octet-stream")
public void exportEmployee(HttpServletResponse response){
List<Employee> list = employeeService.getEmployee(null);
ExportParams params = new ExportParams("员工表","员工表", ExcelType.HSSF);
Workbook workbook = ExcelExportUtil.exportExcel(params, Employee.class, list);
ServletOutputStream out = null;
try {
//流形式
response.setHeader("content-type","application/octet-stream");
//防止中文乱码
response.setHeader("content-disposition","attachment;filename="+ URLEncoder.encode("员工表.xls","UTF-8"));
out = response.getOutputStream();
workbook.write(out);
} catch (IOException e) {
e.printStackTrace();
}finally {
if (null!=out){
try {
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}}
3.导入
@ApiOperation(value = "导入员工数据") @PostMapping("/import") public RespBean importEmployee(MultipartFile file){ ImportParams params = new ImportParams(); //去掉标题行 params.setTitleRows(1); List<Nation> nationList = nationService.list(); List<PoliticsStatus> politicsStatusList = politicsStatusService.list(); List<Department> departmentList = departmentService.list(); List<Joblevel> joblevelList = joblevelService.list(); List<Position> positionList = positionService.list(); try { List<Employee> list = ExcelImportUtil.importExcel(file.getInputStream(), Employee.class, params); list.forEach(employee -> { //民族id employee.setNationId(nationList.get(nationList.indexOf(new Nation(employee.getNation().getName()))).getId()); //政治面貌id employee.setPoliticId(politicsStatusList.get(politicsStatusList.indexOf(new PoliticsStatus(employee.getPoliticsStatus().getName()))).getId()); //部门id employee.setDepartmentId(departmentList.get(departmentList.indexOf(new Department(employee.getDepartment().getName()))).getId()); //职称id employee.setJobLevelId(joblevelList.get(joblevelList.indexOf(new Joblevel(employee.getJoblevel().getName()))).getId()); //职位id employee.setPosId(positionList.get(positionList.indexOf(new Position(employee.getPosition().getName()))).getId()); }); if (employeeService.saveBatch(list)){ return RespBean.success("导入成功!"); } } catch (Exception e) { e.printStackTrace(); } return RespBean.error("导入失败!"); }