导入导出文件

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”不可丢

猜你喜欢

转载自www.cnblogs.com/chenzhengwei/p/11969247.html