easyPoi_通过模板导入excel文件

1、引入依赖

		<!-- easypoi依赖 -->
        <dependency>
            <groupId>cn.afterturn</groupId>
            <artifactId>easypoi-spring-boot-starter</artifactId>
            <version>4.1.2</version>
        </dependency>
        <dependency>
            <groupId>cn.afterturn</groupId>
            <artifactId>easypoi-base</artifactId>
            <version>4.1.2</version>
        </dependency>
        <dependency>
            <groupId>cn.afterturn</groupId>
            <artifactId>easypoi-web</artifactId>
            <version>4.1.2</version>
        </dependency>
        <dependency>
            <groupId>cn.afterturn</groupId>
            <artifactId>easypoi-annotation</artifactId>
            <version>4.1.2</version>
        </dependency>

2、创建excel模板

excel导入模板
3、数据库对应table
数据库对应table
4、相关方法

public ResultVO<Boolean> saveCompanyEnter(MultipartFile file) {
        try {
            //存放数据的List
            List<LitemallCompanyEnterTemporary> tempList = new ArrayList<>();
            //将MultipartFile转成File
            ImportParams params = new ImportParams();
            params.setTitleRows(1);     //表格标题行数
            String filePath = "exportTemp/firmImport.xls";      //模板存放地址

            File f = new File(filePath);
            FileUtils.copyInputStreamToFile(file.getInputStream(), f);
            ExcelImportResult<Map> result = ExcelImportUtil.importExcelMore(f, Map.class, params);
            for (Map map : result.getList()) {
                if (map.get("序号") != null) {
                    LitemallCompanyEnterTemporary temporary = new LitemallCompanyEnterTemporary();
                    if (map.get("企业名称") != null) {
                        temporary.setName(map.get("企业名称").toString());
                    } else {
                        return ResponseUtil.fail("000", "企业名称不能为空!!!");
                    }

                    if (map.get("企业类型") != null) {
                        switch (map.get("企业类型").toString()) {
                            case "高新技术企业":
                                temporary.setType(0);
                                break;
                            case "新产品备案企业":
                                temporary.setType(1);
                                break;
                            case "技术先进型服务企业":
                                temporary.setType(2);
                                break;
                            case "军工企业":
                                temporary.setType(3);
                                break;
                            case "其他":
                                temporary.setType(4);
                                break;
                        }
                    } else {
                        return ResponseUtil.fail("000", "企业类型不能为空!!!");
                    }

                    if (map.get("注册时间") != null) {
                        temporary.setTime(map.get("注册时间").toString());
                    } else {
                        return ResponseUtil.fail("000", "企业注册时间不能为空!!!");
                    }

                    if (map.get("从业人数") != null) {
                        String number = map.get("从业人数").toString();
                        final Pattern pattern = Pattern.compile("-?[0-9]+\\.?[0-9]*");     // 该正则表达式可以匹配所有的数字 包括负数
                        Matcher isNum = pattern.matcher(number);        // matcher是全匹配
                        if (isNum.matches()) {
                            temporary.setNumber(Integer.valueOf(number));
                        } else {
                            return ResponseUtil.fail("000", "请填写正确数量!!!");
                        }
                    } else {
                        return ResponseUtil.fail("000", "企业从业人数不能为空!!!");
                    }

                    if (map.get("注册资金") != null) {
                        String fund = map.get("注册资金").toString();
                        BigDecimal fundDe = new BigDecimal(fund).setScale(2, BigDecimal.ROUND_DOWN);
                        temporary.setPrice(fundDe);
                    } else {
                        return ResponseUtil.fail("000", "企业从业人数不能为空!!!");
                    }

                    if (map.get("企业网址") != null) {
                        temporary.setLink(map.get("企业网址").toString());
                    }

                    if (map.get("企业介绍") != null) {
                        temporary.setBrief(map.get("企业介绍").toString());
                    }

                    if (map.get("主要产品") != null) {
                        temporary.setProduct(map.get("主要产品").toString());
                    } else {
                        return ResponseUtil.fail("000", "企业主要产品不能为空!!!");
                    }

                    if (map.get("统一社会信用代码") != null) {
                        temporary.setCode(map.get("统一社会信用代码").toString());
                    } else {
                        return ResponseUtil.fail("000", "企业统一社会信用代码不能为空!!!");
                    }

                    if (map.get("企业法人") != null) {
                        temporary.setLegalPerson(map.get("企业法人").toString());
                    } else {
                        return ResponseUtil.fail("000", "企业法人不能为空!!!");
                    }

                    if (map.get("固定电话") != null) {
                        temporary.setPhone(map.get("固定电话").toString());
                    }

                    if (map.get("电子邮箱") != null) {
                        String emailStr = map.get("电子邮箱").toString();
                        if (RegexUtil.isEmail(emailStr)) {
                            temporary.setEmail(map.get("电子邮箱").toString());
                        } else {
                            return ResponseUtil.fail("000", "请填写正确的电子邮箱!!!");
                        }
                    }

                    if (map.get("联系地址") != null) {
                        temporary.setAddress(map.get("联系地址").toString());
                    } else {
                        return ResponseUtil.fail("000", "企业联系地址不能为空!!!");
                    }

                    temporary.setStatus(0);         //状态:0未同步 1已同步 2已存在未同步
                    temporary.setAddTime(new Date());
                    temporary.setUpdateTime(new Date());
                    temporary.setDeleted(false);

                    tempList.add(temporary);
                }
            }
            Boolean b = false;
            if (!tempList.isEmpty() && tempList.size() > 0 && tempList != null) {
                b = saveBatch(tempList);
                if (!b) {
                    return ResponseUtil.fail("000", "添加导入企业信息失败!!!");
                }
            }

            return ResponseUtil.ok(b);
        } catch (IOException e) {
            e.printStackTrace();
            return ResponseUtil.fail("000", e.getMessage());
        }
    }

5、最终效果
最终效果
6、划重点(哈哈)
划重点
最后:
如果有写的不对的地方,请各位指正。。。。当然,如果对你有用,点个赞呗。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值