JAVA-easyexcel多sheet页导入

今天给宝子带来一套多sheet页导入的模板,话不多说直接上代码

java 复制代码
   String localFilePath = "file.xlsx";
      

        JSONObject jsonObject = JSON.parseObject(file);
        String useFile = jsonObject.getString("file");

        useFile=useFile.replace("\\\\","/");
        System.out.println("222222"+useFile);

        if (useFile.startsWith("http")||useFile.startsWith("https")||useFile.startsWith("ftp")){
            System.out.println("11111111111111111111");
            URL url = new URL(useFile);

            // 打开远程文件的输入流
            BufferedInputStream inputStream = new BufferedInputStream(url.openStream());

            // 创建本地文件的输出流
            FileOutputStream outputStream = new FileOutputStream(localFilePath);

            // 从输入流读取数据并写入输出流
            byte[] buffer = new byte[1024];
            int bytesRead;
            while ((bytesRead = inputStream.read(buffer, 0, 1024)) != -1) {
                outputStream.write(buffer, 0, bytesRead);
            }

            // 关闭流
            inputStream.close();
            outputStream.close();

        }else {
            localFilePath=useFile;
        }
        
        EasyExcel.read(localFilePath, CustomerExcel.class,new CustomerExcelListener()).sheet(0).doRead();
        EasyExcel.read(localFilePath, CustomerBankExcel.class,new CustomerBankExcelListener()).sheet(0).doRead();
        EasyExcel.read(localFilePath, CustomerAddressExcel.class,new CustomerAddressExcelListener()).sheet(0).doRead();
        EasyExcel.read(localFilePath, CustomerCreditExcel.class,new CustomerCreditExcelListener()).sheet(0).doRead();
        EasyExcel.read(localFilePath, CustomerSaleExcel.class,new CustomerSaleExcelListener()).sheet(0).doRead();

        List<Customer> customers = CustomerExcelListener.list;
        List<CustomerBank> customerBanks = CustomerBankExcelListener.list;
        List<CustomerAddress> customerAddresses = CustomerAddressExcelListener.list;
        List<CustomerCredit> customerCredits = CustomerCreditExcelListener.list;
        List<CustomerSale> customerSales = CustomerSaleExcelListener.list;
        
        customers.stream().forEach(customer -> {
            LambdaQueryWrapper<Customer> eq = new QueryWrapper<Customer>().lambda()
                    .eq(Customer::getCode, customer.getCode());
            Customer one = customerService.getOne(eq);
            if (one!=null){
                BeanUtils.copyProperties(customer,one);
                customerService.updateById(one);
            }else {
                customerService.save(customer);
            }
        });

        customerBanks.stream().forEach(customerBank -> {
            LambdaQueryWrapper<CustomerBank> eq = new QueryWrapper<CustomerBank>().lambda()
                    .eq(CustomerBank::getCustomerCode, customerBank.getCustomerCode());
            CustomerBank one = customerBankService.getOne(eq);
            if (one!=null){
                BeanUtils.copyProperties(customerBank,one);
                customerBankService.updateById(one);
            }else {
                customerBankService.save(customerBank);
            }
        });
        customerAddresses.stream().forEach(customerAddress -> {
            LambdaQueryWrapper<CustomerAddress> eq = new QueryWrapper<CustomerAddress>().lambda()
                    .eq(CustomerAddress::getCustomerCode, customerAddress.getCustomerCode());
            CustomerAddress one = customerAddressService.getOne(eq);
            if (one!=null){
                BeanUtils.copyProperties(customerAddress,one);
                customerAddressService.updateById(one);
            }else {
                customerAddressService.save(customerAddress);
            }
        });

        customerCredits.stream().forEach(customerCredit -> {
            LambdaQueryWrapper<CustomerCredit> eq = new QueryWrapper<CustomerCredit>().lambda()
                    .eq(CustomerCredit::getCustomerCode, customerCredit.getCustomerCode());
            CustomerCredit one = customerCreditService.getOne(eq);
            if (one!=null){
                BeanUtils.copyProperties(customerCredit,one);
                customerCreditService.updateById(one);
            }else {
                customerCreditService.save(customerCredit);
            }
        });


        customerSales.stream().forEach(customerSale -> {
            LambdaQueryWrapper<CustomerSale> eq = new QueryWrapper<CustomerSale>().lambda()
                    .eq(CustomerSale::getCustomerCode, customerSale.getCustomerCode());
            CustomerSale one = customerSaleService.getOne(eq);
            if (one!=null){
                BeanUtils.copyProperties(customerSale,one);
                customerSaleService.updateById(one);
            }else {
                customerSaleService.save(customerSale);
            }
        });
        
        customerCredits.clear();
        customers.clear();
        customerSales.clear();
        customerAddresses.clear();
        customerBanks.clear();
        return JsonResponse.ok();
相关推荐
冷雨夜中漫步7 小时前
Python快速入门(6)——for/if/while语句
开发语言·经验分享·笔记·python
JH30738 小时前
SpringBoot 优雅处理金额格式化:拦截器+自定义注解方案
java·spring boot·spring
m0_736919109 小时前
C++代码风格检查工具
开发语言·c++·算法
Coder_Boy_9 小时前
技术让开发更轻松的底层矛盾
java·大数据·数据库·人工智能·深度学习
2501_944934739 小时前
高职大数据技术专业,CDA和Python认证优先考哪个?
大数据·开发语言·python
invicinble9 小时前
对tomcat的提供的功能与底层拓扑结构与实现机制的理解
java·tomcat
较真的菜鸟10 小时前
使用ASM和agent监控属性变化
java
黎雁·泠崖10 小时前
【魔法森林冒险】5/14 Allen类(三):任务进度与状态管理
java·开发语言
2301_7634724611 小时前
C++20概念(Concepts)入门指南
开发语言·c++·算法
TechWJ11 小时前
PyPTO编程范式深度解读:让NPU开发像写Python一样简单
开发语言·python·cann·pypto