1.首先需要引入下面这两个Jar包
<dependency> <groupId>cn.afterturn</groupId> <artifactId>easypoi-web</artifactId> <version>4.1.0</version> </dependency> <dependency> <groupId>cn.afterturn</groupId> <artifactId>easypoi-annotation</artifactId> <version>4.1.0</version> </dependency>
2,、建实体类的时候,加上注解@Excel
package com.bztech.core.club.bean.out; import cn.afterturn.easypoi.excel.annotation.Excel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.Date; /** * @author zhengwei.chen * @title: ExportClubBeanOut * @projectName nsfzClub * @description: 社团到处实体类 * @date 2019/11/1914:01 */ @Data public class ExportClubBeanOut { @Excel(name = "学年",width = 15) private String schoolYear; @Excel(name = "学期",width = 12) private String term; @Excel(name = "社团名称",width = 20) private String clubName; @Excel(name = "社团的类型",width = 20,replace = {"体育竞技类_0","演讲类_1","其它_2"}) private Long clubType; @Excel(name = "社团宗旨",width = 20) private String clubPurpose; @Excel(name = "社团人数",width = 5) private Integer memberNum; @Excel(name = "社长姓名",width = 10) private String president; @Excel(name = "社长班级",width = 15) private String presidentClass; @Excel(name = "社长联系方式",width = 15) private String presidentPhone; @Excel(name = "指导老师",width = 20) private String instructors; @Excel(name = "上课地点",width = 30) private String classLocations; @Excel(name = "创建人",width = 10) private String clubCreateUser; @Excel(name = "创建时间",width = 12,format = "yyyy-MM-dd HH:mm:ss") private Date createTime; }
3、导入例子
Controller
@ApiOperation(value = "A批量导入", notes = "A批量导入") @PostMapping("/addMany") public Object addMany(@ApiParam(hidden = true) @UserId Long userId, @RequestParam MultipartFile clubExcel,HttpServletRequest request) throws Exception { XxlSsoUser xxlSsoUser = (XxlSsoUser) request.getAttribute(Conf.SSO_USER); return clubService.addMany(xxlSsoUser.getUsername(),clubExcel); }
Service
@Transactional(rollbackFor = Exception.class) @Override public Result addMany(String userName, MultipartFile clubExcel) throws Exception { /* 1.查看当前的学期学年**/ String schoolYear = configService.getConfigValue(ConfigEnum.NOW_SCHOOL_YEAR.getConfigName(), ConfigEnum.NOW_SCHOOL_YEAR.getConfigExplain()); String term = configService.getConfigValue(ConfigEnum.NOW_TERM.getConfigName(), ConfigEnum.NOW_TERM.getConfigExplain()); /* 2.从文件中取出数据**/ List<ClubExcelParam> importExcel = ExcelUtils.importExcel(clubExcel, 0, 1, new String[]{}, ClubExcelParam.class); /* 2.组装并且保存数据**/ for (ClubExcelParam clubExcelParam : importExcel) { Club club = new Club(); club.setClubCreateUser(userName); club.setTerm(term); club.setSchoolYear(schoolYear); club.setStatus(ClubStatusEnum.IS_PASS.getCode()); club.setClassLocations(clubExcelParam.getClassLocations()); club.setClubName(clubExcelParam.getClubName()); club.setClubType(clubExcelParam.getClubType()); MemberListBeanOut memberListBeanOut = studentService.findStudentByParam(clubExcelParam.getPresidentNo(), 0); if (null != memberListBeanOut) { club.setPresidentClass(memberListBeanOut.getClassName()); club.setPresidentId(memberListBeanOut.getMemberId()); club.setPresidentNo(clubExcelParam.getPresidentNo()); club.setPresident(clubExcelParam.getPresident()); } else { //没有找到指导老师的信息 log.info("【提示】{}社长信息在sso中不存在,学号为{}", clubExcelParam.getPresident(), clubExcelParam.getPresidentNo()); } club = clubDAO.save(club); Long clubId = club.getClubId(); if(null != memberListBeanOut){ ClubMember clubMember = new ClubMember(); clubMember.setClubPosition(ClubPositionEnum.PRESIDENT.getCode()); clubMember.setStatus(ClubMemberStatusEnum.IS_PASS.getCode()); clubMember.setJoinClubTime(DateUtil.format(new Date(), "yyyy-MM-dd")); clubMember.setMemberName(memberListBeanOut.getMemberName()); clubMember.setTerm(term); clubMember.setSchoolYear(schoolYear); clubMember.setMemberGender(memberListBeanOut.getMemberGender()); clubMember.setMemberClass(memberListBeanOut.getClassName()); clubMember.setClubId(clubId); clubMember.setMemberId(memberListBeanOut.getMemberId()); clubMember.setMemberNo(memberListBeanOut.getMemberNo()); clubMemberDAO.save(clubMember); } String instructors = clubExcelParam.getInstructors(); if (null != instructors && !"".equals(instructors)) { String[] instructorArray = instructors.split(","); for (String instructor : instructorArray) { List<ClubInstructorListBeanOut> instructorListBeanOutList = clubInstructorService.findTeacherByParam(instructor,0); if (null != instructorListBeanOutList && instructorListBeanOutList.size() > 0) { ClubInstructorListBeanOut clubInstructorListBeanOut = instructorListBeanOutList.get(0); ClubInstructor clubInstructor = new ClubInstructor(); clubInstructor.setInstructor(clubInstructorListBeanOut.getInstructor()); clubInstructor.setInstructorId(clubInstructorListBeanOut.getInstructorId()); clubInstructor.setSchoolYear(schoolYear); clubInstructor.setTerm(term); clubInstructor.setClubId(clubId); clubInstructorDAO.save(clubInstructor); } else { //没有找到指导老师的信息 log.info("【提示】{}老师信息在sso中不存在", instructor); } } } } return Result.OK(); }
3、导出例子
service
@Override public void exportClub(List<Long> clubIdList, HttpServletResponse response) throws Exception { /* 1.查询勾选的社团信息**/ List<ExportClubBeanOut> beanOutList = new ArrayList<>(); List<Club> clubList = clubDAO.findByClubIdIn(clubIdList); for (Club club : clubList) { /* 1.1.基本的信息阻止**/ ExportClubBeanOut exportClubBeanOut = new ExportClubBeanOut(); exportClubBeanOut.setClubName(club.getClubName()); exportClubBeanOut.setClubType(club.getClubType()); exportClubBeanOut.setClubPurpose(club.getClubPurpose()); exportClubBeanOut.setClassLocations(club.getClassLocations()); exportClubBeanOut.setClubCreateUser(club.getClubCreateUser()); exportClubBeanOut.setCreateTime(club.getCreateTime()); exportClubBeanOut.setPresident(club.getPresident()); exportClubBeanOut.setPresidentClass(club.getPresidentClass()); exportClubBeanOut.setPresidentPhone(club.getPresidentPhone()); exportClubBeanOut.setSchoolYear(club.getSchoolYear()); exportClubBeanOut.setTerm(club.getTerm()); /* 1.2.查询该社团的所有指导老师**/ List<ClubInstructor> clubInstructorAllList = clubInstructorDAO.findByClubId(club.getClubId()); String instructors = ""; for (ClubInstructor clubInstructorAll : clubInstructorAllList) { if ("".equals(instructors)) { instructors = clubInstructorAll.getInstructor(); } else { instructors = clubInstructorAll.getInstructor() + "," + clubInstructorAll.getInstructor(); } } exportClubBeanOut.setInstructors(instructors); /* 2.2.该社团的人数**/ Integer memberNum = clubMemberService.queryClubPersonNumByClubId(club.getClubId()); exportClubBeanOut.setMemberNum(memberNum); beanOutList.add(exportClubBeanOut); } String fileName = "社团导出表" + DateUtil.format(new Date(), "yyyyMMddHHmmss"); ExcelUtils.exportExcel(beanOutList, "社团导出表", "社团", ExportClubBeanOut.class, fileName+".xls", response); }
文件名filename后面的文件格式“.xls”不可丢