当前位置: 首页 > news >正文

JAVA-easyexcel多sheet页导入

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

   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();

http://www.lryc.cn/news/214995.html

相关文章:

  • Java——比较器(一文搞懂比较器Comparable和Comparator)
  • 企业直播招聘抖音报白如何实现?怎么样才能报白成功?
  • 【考研数学】概率论与数理统计 —— 第七章 | 参数估计(2,参数估计量的评价、正态总体的区间估计)
  • 【设计模式】第10节:结构型模式之“组合模式”
  • 改进YOLOv3!IA-YOLO:恶劣天气下的目标检测
  • Vue路由跳转的几种方式
  • TiDB x 汉口银行丨分布式数据库应用实践
  • uci机器学习数据库简介
  • 多人协作使用git如何解决冲突?
  • 基于【逻辑回归】的评分卡模型金融借贷风控项目实战
  • 企业拉美跨境出海面对时延情况怎么办?
  • 【vector题解】只出现一次的数字 | 电话号码的数字组合
  • VS2022 开发方式
  • 【Python语言速回顾】——数据可视化基础
  • java实现pdf文件添加水印,下载到浏览器
  • 代码随想录算法训练营第四十一天丨 动态规划part04
  • PyCharm免费安装和新手使用教程
  • 使用Python的Scikit-Learn进行决策树建模和可视化:以隐形眼镜数据集为例
  • 开源软件:释放创新的力量,改变数字世界的游戏规则
  • 【QT】鼠标常用事件
  • LuatOS-SOC接口文档(air780E)--mlx90640 - 红外测温(MLX90640)
  • java连接本地数据库可以简写为///
  • 基于springboot漫画动漫网站
  • autoFac 生命周期 试验
  • foreach、for in 和for of的区别?
  • 【Effective C++】条款45: 运用成员函数模板接受所有兼容的类型
  • WSL1 安装 debian xfce 用xrdp 导入远程桌面
  • WPF RelativeSource属性-目标对象类型易错
  • Java while 和do while 循环
  • 应用软件安全编程--03净化传递给 Runtime.exec() 方法的非受信数据