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();
相关推荐
禅思院2 分钟前
大列表性能优化 · 工程实战·四
开发语言·前端·性能优化·前端框架·php·异步加载
z落落4 分钟前
C# 多接口实现、重名成员、显式实现、接口继承+抽象类和接口区别
java·开发语言·c#
caimouse6 分钟前
Reactos 第 4 章 对象管理 — 4.6 对象的访问控制 / 4.7 句柄的遗传和继承
开发语言·windows·架构
C137的本贾尼12 分钟前
【实战】分析一张真实业务表的 InnoDB 存储结构
java·大数据·数据库
huangdong_13 分钟前
京东整店商品图片视频批量下载技术:从商品列表到自动分类
开发语言·python·音视频
超梦dasgg13 分钟前
亿级数据 不停服务平滑迁移(生产环境实战方案)
java·数据库
Zella折耳根15 分钟前
Java 正则表达式实战:IP 地址匹配与替换全解析
java·tcp/ip·正则表达式
摇滚侠15 分钟前
JavaWeb 全套教程 Filter 107-111
java·开发语言·servlet
YIN_尹18 分钟前
【Linux系统编程】基础IO第一讲——系统文件IO
android·java·linux·c++
聆风吟º18 分钟前
【C标准库】深入理解C语言 atoi 函数:字符串转换为整数
c语言·开发语言·库函数·atoi