excel导入

本文详细介绍了一种通过Excel批量导入校友及关联企业信息的方法,包括导入工具包使用、实体类设计、业务逻辑实现等关键步骤,适用于一对多关系的数据导入场景。

需求:

一个校友有多个企业,再导入校友的时候 直接把企业都导入进去,如果一个校友有两个企业的话,导一个校友两个企业

思路

导入工具包, 把所需的要导入的字段写进去,写两个实体类
一个alumniEntity 校友实体类
一个enterpriseEntity 企业实体类
再写一个pojo类 包括所有字段
之后写一个controller 做业务
业务:创建一个所有校友的集合作为一个容器, 创建校友对象,把校友字段存入之后+创建企业对象(因为校友企业属于一对多的关系,所以要提高作用域,做成全局变量,防止同一个主表覆盖附表的第二表中的第一条数据),把校友和企业字段都放入校友容器中,之后存入企业的对象中,把企业字段加入
最后循环容器中的数据,把数据存到数据库中

代码如下

导入工具类,把excel表中要导入的数据写入

package com.hegao.pdos.core.uitle;


import com.alibaba.druid.util.StringUtils;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;


/**
 * @ClassName: ExcelHelper
 * @Auther: 
 * @Date: 2019/12/8 10:27
 * @Description: excel帮助类
 */
public class ExcelHelper {
    /**
     * 将excel解析为指定的对象集合 <br>
     * 例如: 要导入的excel格式为 <br>
     * 第1行:  | id   | username | password |(与对象的字段对应)<br>
     * 第2行:  |1     | 小周   | 123456    |<br>
     * 第3行:  |2     | 老王   | 123456    |<br>
     * 调用: analysisExcel(file,User.class);
     *
     * @param file-----要解析的excel文件
     * @param c--------指定的对象类型
     * @throws IOException
     * @return---------对象集合
     */
    public static <T> List<T> analysisExcel(File file, Class<T> c) {
        List<T> list = new ArrayList<T>();
        InputStream inputStream = null;
        String fileName = null;
        Workbook wb = null;
        try {
            inputStream = new FileInputStream(file);
            fileName = file.getName();
            if (fileName.endsWith(".xls") || fileName.endsWith(".xlsx")) {
                //如果是2003版本
                if (fileName.endsWith(".xls")) {
                    //1.先解析文件
                    POIFSFileSystem fs = new POIFSFileSystem(inputStream);
                    wb = new HSSFWorkbook(fs);
                } else if (fileName.endsWith(".xlsx")) {//如果是2007以上版本
                    wb = new XSSFWorkbook(inputStream);
                } else {
                    return null;
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        Sheet sheet = null;
        Row row1 = null;
        try {
            sheet = wb.getSheetAt(0);
            if(sheet == null){
                return null;
            }
             row1 = sheet.getRow(0);
            if(row1 == null){
                return null;
            }
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
        //获取第一行(标题行)

        //总列数
        int colNum = row1.getPhysicalNumberOfCells();
        //总行数
        int rowNum = sheet.getLastRowNum();
        //将标题行一一放入数组
        List<String> titles = new ArrayList<>();
        for (int i = 0; i < colNum; i++) {
            if (StringUtils.isEmpty(row1.getCell(i).getStringCellValue()) || "null".equals(row1.getCell(i).getStringCellValue())) {
                continue;
            }
//            if(row1.getCell(i).getStringCellValue().equals("姓名")){
//
//                titles.add(row1.getCell(i).getStringCellValue());
//            }
            titles.add(row1.getCell(i).getStringCellValue());
        }
        //获取指定对象所有的字段
        Field fields[] = c.getDeclaredFields();
        Map<String, Field> fieldMap = new HashMap<String, Field>();
        for (int i = 0; i < fields.length; i++) {
            fieldMap.put(fields[i].getName(), fields[i]);
        }
        //使用反射机制,将值存入对应对象中
        try {
            row:
            for (int i = 1; i < rowNum + 1; i++) {
                T t = c.newInstance();
                String title = null;
                item:
                for (int j = 0; j < titles.size(); j++) {
                    //当excel中有这个字段
                    String str = null;
                    if(titles.get(j).equals("行业")){
                        str = "industry";
                    }
                    if(titles.get(j).equals("常驻地区")){
                        str = "resident_area";
                    }
                    if(titles.get(j).equals("工作单位")){
                        str = "org";
                    }
                    if(titles.get(j).equals("工作部门")){
                        str = "department";
                    }
                    if(titles.get(j).equals("职务")){
                        str = "duty";
                    }
                    if(titles.get(j).equals("职称")){
                        str = "job_title";
                    }
                    if(titles.get(j).equals("单位地址省")){
                        str = "org_province";
                    }
                    if(titles.get(j).equals("单位地址 市")){
                        str = "org_city";
                    }
                    if(titles.get(j).equals("单位地址区")){
                        str = "org_area";
                    }
                    if(titles.get(j).equals("单位地址")){
                        str = "org_address";
                    }
                    if(titles.get(j).equals("单位地址具体")){
                        str = "org_address_specific";
                    }
                    if(titles.get(j).equals("提供校友id")){
                        str = "alumnus_id";
                    }
                    if(titles.get(j).equals("校友信息--提供")){
                        str = "provide_information";
                    }
                    if(titles.get(j).equals("校友信息-所需信息")){
                        str = "information_required";
                    }
                    if(titles.get(j).equals("出生日期")){
                        str = "birth";
                    }
                    if(titles.get(j).equals("民族")){
                        str = "nation";
                    }
                    if(titles.get(j).equals("宗教信仰")){
                        str = "faith";
                    }
                    if(titles.get(j).equals("兴趣爱好")){
                        str = "hobby";
                    }
                    if(titles.get(j).equals("家庭地址")){
                        str = "family_address";
                    }
                    if(titles.get(j).equals("家庭地址具体")){
                        str = "family_address_specific";
                    }
                    if(titles.get(j).equals("个人介绍")){
                        str = "my_introduce";
                    }
                    if(titles.get(j).equals("毕业班级")){
                        str = "graduation_class";
                    }
                    if(titles.get(j).equals("所学专业")){
                        str = "major";
                    }
                    if(titles.get(j).equals("微信号")){
                        str = "wx_number";
                    }
                    if(titles.get(j).equals("邮箱")){
                        str = "email";
                    }
                    if(titles.get(j).equals("企业名字")){
                        str = "enterprise_name";
                    }
                    if(titles.get(j).equals("企业介绍")){
                        str = "enterprise_introduce";
                    }
                    if(titles.get(j).equals("产品介绍")){
                        str = "produc_introduce";
                    }
                    if(titles.get(j).equals("产品介绍条件")){
                        str = "produc_condition";
                    }
                    if(titles.get(j).equals("荣誉")){
                        str = "honor";
                    }
                    if(titles.get(j).equals("履历")){
                        str = "resume";
                    }




                    if (fieldMap.containsKey(str)) {
//                        String fieldName = titles.get(j);
                        String fieldName = str;
                        String methodName = "set" + fieldName.substring(0, 1).toUpperCase() + fieldName.substring(1);
                        //调用该字段对应的set方法
//                        Class cc = fieldMap.get(titles.get(j)).getType();
                        Class cc = fieldMap.get(str).getType();
                        Method method = c.getMethod(methodName, cc);
                        String value = String.valueOf(sheet.getRow(i).getCell(j));
                        Object o = parseValue(value, cc);
                        if (o == null) {
                            break row;
                        }
                        title = o.toString();
                        method.invoke(t, o);
                    }
                }
                if (title != null) {
                    list.add(t);
                }

            }

        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
        return list;
    }

    /**
     * 将字符串转化为指定类型的对象
     *
     * @param s----要转化的字符串
     * @param c----目标对象类型
     * @return
     */
    private static Object parseValue(String s, Class c) {
        Object obj = null;
        String className = c.getName();
        //excel中的数字解析之后可能末尾会有.0,需要去除
        if (s.endsWith(".0")) s = s.substring(0, s.length() - 2);
        if (className.equals("java.lang.Integer")) { //Integer
            if ("null".equals(s) && StringUtils.isEmpty(s)) {
                obj = null;
            } else {
                obj =Integer.valueOf(s);
            }
        } else if (className.equals("int")) { //int
            if ("null".equals(s) || StringUtils.isEmpty(s)) {
                obj = null;
            } else {
                obj = Integer.parseInt(s);
            }
        } else if (className.equals("java.lang.String")) { //String
            obj = s;
        } else if (className.equals("java.lang.Double")) { //Double
            if ("null".equals(s) || StringUtils.isEmpty(s)) {
                obj = null;
            } else {
                obj = new Double(s);
            }
        } else if (className.equals("double")) { //double
            if ("null".equals(s) || StringUtils.isEmpty(s)) {
                obj = null;
            } else {
                obj = new Double(s);
            }

        } else if (className.equals("java.lang.Float")) { //Float
            if ("null".equals(s) || StringUtils.isEmpty(s)) {
                obj = null;
            } else {
                obj = new Float(s);
            }

        } else if (className.equals("float")) { //float
            if ("null".equals(s) || StringUtils.isEmpty(s)) {
                obj = null;
            } else {
                obj = new Float(s);
            }
        } else if (className.equals("java.util.Date")) { //Date
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            try {
                obj = sdf.parse(s);
            } catch (ParseException e) {
                e.printStackTrace();
            }
        } else if (className.equals("long")) { //long
            if ("null".equals(s) || StringUtils.isEmpty(s)) {
                obj = null;
            } else {
                obj = Long.parseLong(s);
            }

        } else if (className.equals("java.util.Long")) { //Long
            if ("null".equals(s) || StringUtils.isEmpty(s)) {
                obj = null;
            } else {
                obj = Long.valueOf(s);
            }

        }
        return obj;
    }

}

导入pom文件

<!--解析excel   start-->
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>3.7</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml -->
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>3.7</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml-schemas -->
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml-schemas</artifactId>
    <version>3.7</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.xmlbeans/xmlbeans -->
<dependency>
    <groupId>org.apache.xmlbeans</groupId>
    <artifactId>xmlbeans</artifactId>
    <version>3.0.2</version>
</dependency>

建立两个实体类

校友实体(声明一个集合存入企业list)

package com.hegao.pdos.applet.controller.entity;

import java.util.List;

/**
 * 校友实体
 */
public class alumniEntity {

    List<enterpriseEntity> enterpriseEntityList;

    public List<enterpriseEntity> getEnterpriseEntityList() {
        return enterpriseEntityList;
    }

    public void setEnterpriseEntityList(List<enterpriseEntity> enterpriseEntityList) {
        this.enterpriseEntityList = enterpriseEntityList;
    }


    private String industry;
    //    @ExcelColum("常驻地区")
    private String resident_area;
    //    @ExcelColum("工作单位")
    private String org;
    //    @ExcelColum("工作部门")
    private String department;

    public String getDuty() {
        return duty;
    }

    public void setDuty(String duty) {
        this.duty = duty;
    }

    //    @ExcelColum("职务")
    private String duty;
    //    @ExcelColum("职称")
    private String job_title;
    //    @ExcelColum("单位地址省")
    private String org_province;
    //    @ExcelColum("单位地址 市")
    private String org_city;
    //    @ExcelColum("单位地址区")
    private String org_area;
    //    @ExcelColum("单位地址")
    private String org_address;
    //    @ExcelColum("单位地址具体")
    private String org_address_specific;
    //    @ExcelColum("校友信息--提供")
    private String provide_information;
    //    @ExcelColum("校友信息-所需信息")
    private String information_required;
    //    @ExcelColum("出生日期")
    private String birth;
    //    @ExcelColum("民族")
    private String nation;
    //    @ExcelColum("宗教信仰")
    private String faith;
    //    @ExcelColum("兴趣爱好")
    private String hobby;
    //    @ExcelColum("家庭地址")
    private String family_address;
    //    @ExcelColum("家庭地址具体")
    private String family_address_specific;
    //    @ExcelColum("个人介绍")
    private String my_introduce;
    //    @ExcelColum("毕业班级")
    private String graduation_class;
    //    @ExcelColum("所学专业")
    private String major;
    //    @ExcelColum("微信号")
    private String wx_number;
    //    @ExcelColum("邮箱")
    private String email;
    //    @ExcelColum("提供校友id")
    private String alumnus_id;

    public String getAlumnus_id() {
        return alumnus_id;
    }

    public void setAlumnus_id(String alumnus_id) {
        this.alumnus_id = alumnus_id;
    }

    public String getIndustry() {
        return industry;
    }

    public void setIndustry(String industry) {
        this.industry = industry;
    }

    public String getResident_area() {
        return resident_area;
    }

    public void setResident_area(String resident_area) {
        this.resident_area = resident_area;
    }

    public String getOrg() {
        return org;
    }

    public void setOrg(String org) {
        this.org = org;
    }

    public String getDepartment() {
        return department;
    }

    public void setDepartment(String department) {
        this.department = department;
    }

    public String getJob_title() {
        return job_title;
    }

    public void setJob_title(String job_title) {
        this.job_title = job_title;
    }

    public String getOrg_province() {
        return org_province;
    }

    public void setOrg_province(String org_province) {
        this.org_province = org_province;
    }

    public String getOrg_city() {
        return org_city;
    }

    public void setOrg_city(String org_city) {
        this.org_city = org_city;
    }

    public String getOrg_area() {
        return org_area;
    }

    public void setOrg_area(String org_area) {
        this.org_area = org_area;
    }

    public String getOrg_address() {
        return org_address;
    }

    public void setOrg_address(String org_address) {
        this.org_address = org_address;
    }

    public String getOrg_address_specific() {
        return org_address_specific;
    }

    public void setOrg_address_specific(String org_address_specific) {
        this.org_address_specific = org_address_specific;
    }

    public String getProvide_information() {
        return provide_information;
    }

    public void setProvide_information(String provide_information) {
        this.provide_information = provide_information;
    }

    public String getInformation_required() {
        return information_required;
    }

    public void setInformation_required(String information_required) {
        this.information_required = information_required;
    }

    public String getBirth() {
        return birth;
    }

    public void setBirth(String birth) {
        this.birth = birth;
    }

    public String getNation() {
        return nation;
    }

    public void setNation(String nation) {
        this.nation = nation;
    }

    public String getFaith() {
        return faith;
    }

    public void setFaith(String faith) {
        this.faith = faith;
    }

    public String getHobby() {
        return hobby;
    }

    public void setHobby(String hobby) {
        this.hobby = hobby;
    }

    public String getFamily_address() {
        return family_address;
    }

    public void setFamily_address(String family_address) {
        this.family_address = family_address;
    }

    public String getFamily_address_specific() {
        return family_address_specific;
    }

    public void setFamily_address_specific(String family_address_specific) {
        this.family_address_specific = family_address_specific;
    }

    public String getMy_introduce() {
        return my_introduce;
    }

    public void setMy_introduce(String my_introduce) {
        this.my_introduce = my_introduce;
    }

    public String getGraduation_class() {
        return graduation_class;
    }

    public void setGraduation_class(String graduation_class) {
        this.graduation_class = graduation_class;
    }

    public String getMajor() {
        return major;
    }

    public void setMajor(String major) {
        this.major = major;
    }

    public String getWx_number() {
        return wx_number;
    }

    public void setWx_number(String wx_number) {
        this.wx_number = wx_number;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }
}

企业实体

package com.hegao.pdos.applet.controller.entity;

/**
 * 企业实体
 */
public class enterpriseEntity {
    //    @ExcelColum("企业名字")
    private String enterprise_name;
    //    @ExcelColum("企业介绍")
    private String enterprise_introduce;
    //    @ExcelColum("产品介绍")
    private String produc_introduce;
    //    @ExcelColum("产品介绍条件")
    private String produc_condition;
    //    @ExcelColum("荣誉")
    private String honor;
    //    @ExcelColum("履历")
    private String resume;

    public String getEnterprise_name() {
        return enterprise_name;
    }

    public void setEnterprise_name(String enterprise_name) {
        this.enterprise_name = enterprise_name;
    }

    public String getEnterprise_introduce() {
        return enterprise_introduce;
    }

    public void setEnterprise_introduce(String enterprise_introduce) {
        this.enterprise_introduce = enterprise_introduce;
    }

    public String getProduc_introduce() {
        return produc_introduce;
    }

    public void setProduc_introduce(String produc_introduce) {
        this.produc_introduce = produc_introduce;
    }

    public String getProduc_condition() {
        return produc_condition;
    }

    public void setProduc_condition(String produc_condition) {
        this.produc_condition = produc_condition;
    }

    public String getHonor() {
        return honor;
    }

    public void setHonor(String honor) {
        this.honor = honor;
    }

    public String getResume() {
        return resume;
    }

    public void setResume(String resume) {
        this.resume = resume;
    }
}

存入所有的字段

package com.hegao.pdos.applet.controller.member;

/**
 * Created by huasheng on 2019/11/24.
 */
public class TestPaper {
    //    //    @ExcelColum("问题题目")
//    private String title;
    //    @ExcelColum("学校名称")
    private String industry;
    //    @ExcelColum("常驻地区")
    private String resident_area;
    //    @ExcelColum("工作单位")
    private String org;
    //    @ExcelColum("工作部门")
    private String department;
    //    @ExcelColum("职称")
    private String job_title;
    //    @ExcelColum("单位地址省")
    private String org_province;
    //    @ExcelColum("单位地址 市")
    private String org_city;
    //    @ExcelColum("单位地址区")
    private String org_area;
    //    @ExcelColum("单位地址")
    private String org_address;
    //    @ExcelColum("单位地址具体")
    private String org_address_specific;
    //    @ExcelColum("校友信息--提供")
    private String provide_information;
    //    @ExcelColum("校友信息-所需信息")
    private String information_required;
    //    @ExcelColum("出生日期")
    private String birth;
    //    @ExcelColum("民族")
    private String nation;
    //    @ExcelColum("宗教信仰")
    private String faith;
    //    @ExcelColum("兴趣爱好")
    private String hobby;
    //    @ExcelColum("家庭地址")
    private String family_address;
    //    @ExcelColum("家庭地址具体")
    private String family_address_specific;
    //    @ExcelColum("个人介绍")
    private String my_introduce;
    //    @ExcelColum("毕业班级")
    private String graduation_class;
    //    @ExcelColum("所学专业")
    private String major;
    //    @ExcelColum("微信号")
    private String wx_number;
    //    @ExcelColum("邮箱")
    private String email;
    //    @ExcelColum("企业名字")
    private String enterprise_name;
    //    @ExcelColum("企业介绍")
    private String enterprise_introduce;
    //    @ExcelColum("产品介绍")
    private String produc_introduce;
    //    @ExcelColum("产品介绍条件")
    private String produc_condition;
    //    @ExcelColum("荣誉")
    private String honor;
    //    @ExcelColum("履历")
    private String resume;
    //    @ExcelColum("提供校友id")
    private String alumnus_id;

    public String getAlumnus_id() {
        return alumnus_id;
    }

    public void setAlumnus_id(String alumnus_id) {
        this.alumnus_id = alumnus_id;
    }

    public String getDuty() {
        return duty;
    }

    public void setDuty(String duty) {
        this.duty = duty;
    }

    //    @ExcelColum("职务")
    private String duty;

    public String getIndustry() {
        return industry;
    }

    public void setIndustry(String industry) {
        this.industry = industry;
    }

    public String getResident_area() {
        return resident_area;
    }

    public void setResident_area(String resident_area) {
        this.resident_area = resident_area;
    }

    public String getOrg() {
        return org;
    }

    public void setOrg(String org) {
        this.org = org;
    }

    public String getDepartment() {
        return department;
    }

    public void setDepartment(String department) {
        this.department = department;
    }

    public String getJob_title() {
        return job_title;
    }

    public void setJob_title(String job_title) {
        this.job_title = job_title;
    }

    public String getOrg_province() {
        return org_province;
    }

    public void setOrg_province(String org_province) {
        this.org_province = org_province;
    }

    public String getOrg_city() {
        return org_city;
    }

    public void setOrg_city(String org_city) {
        this.org_city = org_city;
    }

    public String getOrg_area() {
        return org_area;
    }

    public void setOrg_area(String org_area) {
        this.org_area = org_area;
    }

    public String getOrg_address() {
        return org_address;
    }

    public void setOrg_address(String org_address) {
        this.org_address = org_address;
    }

    public String getOrg_address_specific() {
        return org_address_specific;
    }

    public void setOrg_address_specific(String org_address_specific) {
        this.org_address_specific = org_address_specific;
    }

    public String getProvide_information() {
        return provide_information;
    }

    public void setProvide_information(String provide_information) {
        this.provide_information = provide_information;
    }

    public String getInformation_required() {
        return information_required;
    }

    public void setInformation_required(String information_required) {
        this.information_required = information_required;
    }

    public String getBirth() {
        return birth;
    }

    public void setBirth(String birth) {
        this.birth = birth;
    }

    public String getNation() {
        return nation;
    }

    public void setNation(String nation) {
        this.nation = nation;
    }

    public String getFaith() {
        return faith;
    }

    public void setFaith(String faith) {
        this.faith = faith;
    }

    public String getHobby() {
        return hobby;
    }

    public void setHobby(String hobby) {
        this.hobby = hobby;
    }

    public String getFamily_address() {
        return family_address;
    }

    public void setFamily_address(String family_address) {
        this.family_address = family_address;
    }

    public String getFamily_address_specific() {
        return family_address_specific;
    }

    public void setFamily_address_specific(String family_address_specific) {
        this.family_address_specific = family_address_specific;
    }

    public String getMy_introduce() {
        return my_introduce;
    }

    public void setMy_introduce(String my_introduce) {
        this.my_introduce = my_introduce;
    }

    public String getGraduation_class() {
        return graduation_class;
    }

    public void setGraduation_class(String graduation_class) {
        this.graduation_class = graduation_class;
    }

    public String getMajor() {
        return major;
    }

    public void setMajor(String major) {
        this.major = major;
    }

    public String getWx_number() {
        return wx_number;
    }

    public void setWx_number(String wx_number) {
        this.wx_number = wx_number;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getEnterprise_name() {
        return enterprise_name;
    }

    public void setEnterprise_name(String enterprise_name) {
        this.enterprise_name = enterprise_name;
    }

    public String getEnterprise_introduce() {
        return enterprise_introduce;
    }

    public void setEnterprise_introduce(String enterprise_introduce) {
        this.enterprise_introduce = enterprise_introduce;
    }

    public String getProduc_introduce() {
        return produc_introduce;
    }

    public void setProduc_introduce(String produc_introduce) {
        this.produc_introduce = produc_introduce;
    }

    public String getProduc_condition() {
        return produc_condition;
    }

    public void setProduc_condition(String produc_condition) {
        this.produc_condition = produc_condition;
    }

    public String getHonor() {
        return honor;
    }

    public void setHonor(String honor) {
        this.honor = honor;
    }

    public String getResume() {
        return resume;
    }

    public void setResume(String resume) {
        this.resume = resume;
    }
}

业务逻辑 controller

package com.hegao.pdos.applet.controller.member;

import com.hegao.pdos.admin.controller.BaseController;
import com.hegao.pdos.applet.controller.entity.alumniEntity;
import com.hegao.pdos.applet.controller.entity.enterpriseEntity;
import com.hegao.pdos.core.annotation.Action;
import com.hegao.pdos.core.config.ErrorCode;
import com.hegao.pdos.core.uitle.ExcelHelper;
import com.jfinal.aop.Clear;
import com.jfinal.plugin.activerecord.Db;
import com.jfinal.plugin.activerecord.Record;
import com.jfinal.upload.UploadFile;

import java.util.ArrayList;
import java.util.List;


/**
 * 公共请求数据
 *
 * @author OF
 * @date 2018年1月8日
 */
@Action(path = "/excel/service")
public class ExcelController extends BaseController {


    @Clear
    public void upload() {
        try {
            UploadFile file = this.getFile("file", "image");
            List<TestPaper> testPapers = ExcelHelper.analysisExcel(file.getFile(), TestPaper.class);//返回数据list,添加到对应的位置、
            //获取数据list是否为null
            if (testPapers == null || testPapers.size() <= 0) {
                rendFailedJson(ErrorCode.get("9999"));
            } else {
                //创建list<校友>
                List<alumniEntity> alumniEntityList = new ArrayList<>();
                //创建list<企业>
                List<enterpriseEntity> enterpriseEntityList = new ArrayList<>();
                for (TestPaper info : testPapers) {
//                    //判断实体类中行业是否存在
//                    if (info.getIndustry().equals("") || info.getIndustry().equals("null")) {
//                        continue;
//                    }
                    if (alumniEntityList != null) {
                        //创建校友实体
                        if (info.getIndustry().equals("") || info.getIndustry().equals("null")) {

                        } else {
                            alumniEntity alumni = new alumniEntity();
                            //企业list
                            //创建list<企业>
                            enterpriseEntityList = new ArrayList<>();
//把                         //企业信息集合放到校友集合中

                            if (!info.getIndustry().equals("") || !info.getIndustry().equals("null") || !info.getIndustry().toString().equals("undifend")) {
                                alumni.setIndustry(info.getIndustry());
                            }
                            if (!info.getResident_area().equals("") || !info.getResident_area().equals("null") || !info.getResident_area().toString().equals("undifend")) {
                                alumni.setResident_area(info.getResident_area());
                            }
                            if (!info.getOrg().equals("") || !info.getOrg().equals("null") || !info.getOrg().toString().equals("undifend")) {
                                alumni.setOrg(info.getOrg());
                            }
                            if (!info.getDepartment().equals("") || !info.getDepartment().equals("null") || !info.getDepartment().toString().equals("undifend")) {
                                alumni.setDepartment(info.getDepartment());
                            }
                            if (!info.getDuty().equals("") || !info.getDuty().equals("null") || !info.getDuty().toString().equals("undifend")) {
                                alumni.setDuty(info.getDuty());
                            }

                            if (!info.getJob_title().equals("") || !info.getJob_title().equals("null") || !info.getJob_title().toString().equals("undifend")) {
                                alumni.setJob_title(info.getJob_title());
                            }
                            if (!info.getOrg_province().equals("") || !info.getOrg_province().equals("null") || !info.getOrg_province().toString().equals("undifend")) {
                                alumni.setOrg_province(info.getOrg_province());
                            }
                            if (!info.getOrg_city().equals("") || !info.getOrg_city().equals("null") || !info.getOrg_city().toString().equals("undifend")) {
                                alumni.setOrg_city(info.getOrg_city());
                            }
                            if (!info.getOrg_area().equals("") || !info.getOrg_area().equals("null") || !info.getOrg_area().toString().equals("undifend")) {
                                alumni.setOrg_area(info.getOrg_area());
                            }
                            if (!info.getOrg_address().equals("") || !info.getOrg_address().equals("null") || !info.getOrg_address().toString().equals("undifend")) {
                                alumni.setOrg_address(info.getOrg_address());
                            }
                            if (!info.getOrg_address_specific().equals("") || !info.getDuty().equals("null") || !info.getDuty().toString().equals("undifend")) {
                                alumni.setOrg_address_specific(info.getOrg_address_specific());
                            }
                            alumni.setProvide_information(info.getProvide_information());
                            alumni.setInformation_required(info.getInformation_required());
                            alumni.setBirth(info.getBirth());
                            alumni.setNation(info.getNation());
                            alumni.setFaith(info.getFaith());
                            alumni.setHobby(info.getHobby());
                            alumni.setFamily_address(info.getFamily_address());
                            alumni.setFamily_address_specific(info.getFamily_address_specific());
                            alumni.setMy_introduce(info.getMy_introduce());
                            alumni.setGraduation_class(info.getGraduation_class());
                            alumni.setMajor(info.getMajor());
                            alumni.setWx_number(info.getWx_number());
                            alumni.setEmail(info.getEmail());
                            alumni.setAlumnus_id(info.getAlumnus_id());
                            alumniEntityList.add(alumni);
                            alumniEntityList.get(alumniEntityList.size()-1).setEnterpriseEntityList(enterpriseEntityList);
                        }
                    }

                    //创建企业实体
                    enterpriseEntity enterprise = new enterpriseEntity();
                    enterprise.setEnterprise_introduce(info.getEnterprise_introduce());
                    enterprise.setEnterprise_name(info.getEnterprise_name());
                    enterprise.setHonor(info.getHonor());
                    enterprise.setResume(info.getResume());
                    enterprise.setProduc_condition(info.getProduc_condition());
                    enterprise.setProduc_introduce(info.getProduc_introduce());
                    enterpriseEntityList.add(enterprise);
                    //为校友添加企业的信息
                }

                //循环校友的信息
                for (int i = 0; i < alumniEntityList.size(); i++) {
//                    if (alumniEntityList.get(i).getIndustry().equals("") || alumniEntityList.get(i).getIndustry().equals("null")) {
////                        continue;
//                    }
                    Record alumniRecord = new Record();
                    alumniRecord.set("industry", alumniEntityList.get(i).getIndustry());
                    alumniRecord.set("resident_area", alumniEntityList.get(i).getResident_area());
                    alumniRecord.set("org", alumniEntityList.get(i).getOrg());
                    alumniRecord.set("department", alumniEntityList.get(i).getDepartment());
                    alumniRecord.set("duty", alumniEntityList.get(i).getDuty());
                    alumniRecord.set("job_title", alumniEntityList.get(i).getJob_title());
                    Record province = Db.findFirst("select id from of_city where district=?", alumniEntityList.get(i).getOrg_province());
                    alumniRecord.set("org_province", province.getStr("id"));
                    Record city = Db.findFirst("select id from of_city where district=?", alumniEntityList.get(i).getOrg_city());
                    alumniRecord.set("org_city", city.getStr("id"));
                    Record area = Db.findFirst("select id from of_city where district=?", alumniEntityList.get(i).getOrg_area());
                    alumniRecord.set("org_area", area.getStr("id"));
                    alumniRecord.set("org_address", alumniEntityList.get(i).getOrg_address());
                    alumniRecord.set("org_address_specific", alumniEntityList.get(i).getOrg_address_specific());
                    alumniRecord.set("alumnus_id", alumniEntityList.get(i).getAlumnus_id());
                    alumniRecord.set("provide_information", alumniEntityList.get(i).getProvide_information());
                    alumniRecord.set("information_required", alumniEntityList.get(i).getInformation_required());
                    alumniRecord.set("birth", alumniEntityList.get(i).getBirth());
                    alumniRecord.set("nation", alumniEntityList.get(i).getNation());
                    alumniRecord.set("faith", alumniEntityList.get(i).getFaith());
                    alumniRecord.set("hobby", alumniEntityList.get(i).getHobby());
                    alumniRecord.set("family_address", alumniEntityList.get(i).getFamily_address());
                    alumniRecord.set("family_address_specific", alumniEntityList.get(i).getFamily_address_specific());
                    alumniRecord.set("graduation_class", alumniEntityList.get(i).getGraduation_class());
                    alumniRecord.set("major", alumniEntityList.get(i).getMajor());
                    alumniRecord.set("wx_number", alumniEntityList.get(i).getWx_number());
                    alumniRecord.set("email", alumniEntityList.get(i).getEmail());
                    //db.save 校友
                    Db.save("alumni_profile", alumniRecord);
                    //循环校友下企业list
                    for (int j = 0; j < alumniEntityList.get(i).getEnterpriseEntityList().size(); j++) {
                        //根据校友id  存企业信息
                        Integer id = alumniRecord.getInt("id");
                        Record enterpriseRecord = new Record();
                        enterpriseRecord.set("enterprise_name", alumniEntityList.get(i).getEnterpriseEntityList().get(j).getEnterprise_name());
                        enterpriseRecord.set("enterprise_introduce", alumniEntityList.get(i).getEnterpriseEntityList().get(j).getEnterprise_introduce());
                        enterpriseRecord.set("produc_introduce", alumniEntityList.get(i).getEnterpriseEntityList().get(j).getProduc_introduce());
                        enterpriseRecord.set("produc_condition", alumniEntityList.get(i).getEnterpriseEntityList().get(j).getProduc_condition());
                        enterpriseRecord.set("honor", alumniEntityList.get(i).getEnterpriseEntityList().get(j).getHonor());
                        enterpriseRecord.set("resume", alumniEntityList.get(i).getEnterpriseEntityList().get(j).getResume());
                        //循环企业的list  之后
                        enterpriseRecord.set("alumni_profile_id", id);
                        Db.save("enterprise", enterpriseRecord);
                    }
                }
                rendSuccessJson(testPapers);
            }

        } catch (Exception e) {
            e.printStackTrace();
            rendFailedJson(ErrorCode.get("9999"));
        }
    }


}

后台管理 按钮显示

<button
      class="layui-btn layui-btn-sm"

      onclick="uplodeFlie()"
>
   <i class="layui-icon">&#xe654;</i>
   导入
</button>

把id传过来

<input type="file" id="file" style="display: none">

js

function uplodeFlie(){  //展示按钮点击事件
    $("#file").click();
}
   $("#file").change(function(){  //绑定改变方法
            uplode();
        });
        function uplode() {  //上传文件
            var file = $("#file");
            var formData = new FormData();
            formData.append("file", file[0].files[0]);
            var loading = layer.load(0, {
                shade: [0.5, 'gray'] //0.5透明度的灰色背景
            });
            $.ajax({
                type: 'post',
                url: '${webroot}/admin/excel/service/upload',
                timeout:3600000,
                data: formData,
                cache: false,
                processData: false,
                contentType: false,
                success:function (data) {
                    console.log(data);
                    layer.close(loading);
                    layer.msg('导入成功!', {icon: 1});
                    $("#file").val("");
                    adminCommon.setRefreshTable("1");
                },
                error:function () {
                    layer.close(loading);
                    layer.msg('导入失败!', {icon: 5});
//             adminCom mon.setRefreshTable("1");
                    adminCommon.setRefreshTable("1");
                }});
        }

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值