1、自定义模版如下:

销量校验异常数据
序号 spu编码 sku编码 商品名称 销量
mysql redis mongodb
{.rowIndex} {.productCode} {.skuCode} {.productName} {.salesVolume} {.redisVolume} {.mongoVolume}

2、源码部分:

目录结构:

A、引入EasyExcel

<dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>2.1.1</version>
</dependency>

B、创建excel模版填充对应java bean

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;import java.io.Serializable;
import java.sql.Timestamp;/*** @author shipj* @version 1.0* @Title: ExcelSellPricePagerDTO* @Description: 巡检销量* @date 2021-06-17 15:07*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class GoodsSalesExcelDTO implements Serializable {/***序号*/private Integer rowIndex;/***SPU编码*/private String productCode;/*** SKU编码*/private String skuCode;/***商品名称*/private String productName;/***销量*/private Integer salesVolume;/***redis缓存销量*/private Integer redisVolume;/***mongo数量*/private Integer mongoVolume;}

C、创建模版数据填充方法

public Map<String, Object> getExcelFileInfo(List<GoodsSalesExcelDTO> listExcel) {Map<String,Object> excelInfo = new HashMap<>();try {//获取模版文件资源信息、流信息String templateFileName = "GoodsSalesCheckData.xlsx";ClassPathResource classPathResource = new ClassPathResource("template"+File.separator+"excel"+File.separator+templateFileName);InputStream inputStream = classPathResource.getInputStream();//临时文件目录ClassPathResource tempResource = new ClassPathResource("template"+File.separator+"excel"+File.separator+"temp");String tempPath =  tempResource.getFile().getAbsolutePath();//临时文件名称String tempFileName = IdWorker.getMillisecond().toString()+"_GoodsSalesCheckData.xlsx";//临时文件路径及名称String tempFinalPath = null;tempFinalPath = tempPath+ File.separator+tempFileName;log.info("临时文件路径及名称 {}",tempFinalPath);// 写入excelExcelWriter excelWriter = EasyExcel.write(tempFinalPath).withTemplate(inputStream).build();WriteSheet writeSheet = EasyExcel.writerSheet().build();// 填充集合 {.name}excelWriter.fill(listExcel, writeSheet);excelWriter.finish();//构建返回mapexcelInfo.put("templateFileName",templateFileName);excelInfo.put("tempFileName",tempFileName);excelInfo.put("tempFinalPath",tempFinalPath);excelInfo.put("dataSize",listExcel.size());excelInfo.put("isDelete",true);} catch (Exception e) {e.printStackTrace();log.info("读取文件异常:{}", e.getMessage());}return excelInfo;
}

D、调用测试

@Test
public void getExcelFileInfo(){List<GoodsSalesExcelDTO> listExcel = new ArrayList<>();GoodsSalesExcelDTO dto1 = new GoodsSalesExcelDTO();dto1.setRowIndex(1);dto1.setProductCode("PC1");dto1.setSkuCode("SC1");dto1.setProductName("测试1");dto1.setSalesVolume(100);dto1.setRedisVolume(100);dto1.setMongoVolume(100);GoodsSalesExcelDTO dto2 = new GoodsSalesExcelDTO();dto2.setRowIndex(2);dto2.setProductCode("PC2");dto2.setSkuCode("SC2");dto2.setProductName("测试2");dto2.setSalesVolume(20);dto2.setRedisVolume(10);dto2.setMongoVolume(10);listExcel.add(dto1);listExcel.add(dto2);goodsSalesCheckService.getExcelFileInfo(listExcel);
}

根据excel模版填充数据之后,excel效果如下:

销量校验异常数据
序号 spu编码 sku编码 商品名称 销量
mysql redis mongodb
1 PC1 SC1 测试1 100 100 100
2 PC2 SC2 测试2 20 10 10

EasyExcel 自定义Excel模版数据填充相关推荐

  1. 基与easyExcel实现excel模版导出

    Easyexcel官方文档 excel模版位置: 模版数据填充处理:{.对应的实体对象字段名} <dependency><groupId>com.alibaba</gro ...

  2. Excel模板数据填充导出

    Excel模板数据填充导出 需求描述: POI实现 1.添加依赖: <dependency><groupId>org.apache.poi</groupId>< ...

  3. 阿里云EasyExcel读写excel表数据

    阿里云EasyExcel读取excel表数据 1.待读取的excel表test.xls 2.导入Maven依赖 <dependency><groupId>com.alibaba ...

  4. poi实现的excel模板数据填充

    解析并填充数据: 在这里插入代码片 package com.dys.app.util;import java.io.File; import java.io.FileInputStream; impo ...

  5. 踩坑:EasyExcel导出excel导出数据为空

    我再java代码中导出excel 导出数据为空如下图 问题探究 经过断点排查数据 发现数据取出来了 那么问题就不在取数据而在数据写入部分 经过排查翻阅博客发现了这么一句话 读写反射对象用到了Cglib ...

  6. easyexcel 检查表头是否匹配_Java EasyExcel读取Excel表头数据的方法及示例代码

    1、读取表头数据代码/** * 读取表头数据 * * * 1. 创建excel对应的实体对象 参照{@link DemoData} * * 2. 由于默认异步读取excel,所以需要创建excel一行 ...

  7. java操控easyexcel读取excel表格数据为null或部分字段为null

    数据部分字段为null或者全部为null: 可以看到很多字段出现null,解决办法很简单如下: 一.实体类中需要添加toString方法(快捷生成toString键:Ctrl+Ins) @Overri ...

  8. EasyExcel实现Excel文件导入导出

    1 EasyExcel简介 EasyExcel是一个基于Java的简单.省内存的读写Excel的开源项目.在尽可能节约内存的情况下支持读写百M的Excel. github地址: https://git ...

  9. EasyExcel实现Excel文件导入导出功能

    一.EasyExcel简介 Java领域解析.生成Excel比较有名的框架有Apache poi.jxl等.但他们都存在一个严重的问题就是非常的耗内存.如果你的系统并发量不大的话可能还行,但是一旦并发 ...

最新文章

  1. 汽车HUD(Head-up Display)的技术难点
  2. express组合gulp自动更新代码重启浏览器
  3. android端 socket长连接 架构
  4. 全球及中国商用杠铃架行业营销策略及投资建议分析报告2021-2027年版
  5. 计算机应用技术国外现状,浅析计算机应用技术的现状及发展趋势
  6. Master of GCD(差分数组||线段树)
  7. 开源神器,无需一行代码就能搞定机器学习,不会数学也能上手
  8. 学习web前端要了解的HTML5知识有哪些?
  9. openwrt里面的高深代码-两行shell脚本
  10. Gradle Eclipse插件教程
  11. jar的MANIFEST.MF配置了Class-Path, java -classpath设置无效
  12. PRD产品需求文档原型模版
  13. windows环境下neo4j下载安装配置
  14. html网站使用js实现记住账号密码功能
  15. Active Directory的DirectoryEntry与DirectorySearcher初识及Filter语法
  16. Maya 2018 for Mac中文破解版永久激活方法含注册机
  17. 序列化Serializable serialVersionUID的作用
  18. Android P SELinux (三) 权限检查原理与调试
  19. 5G发展的五大动力和四大挑战
  20. 网页快照(Snapshot)使用的相关研究(萌新向总结)

热门文章

  1. 执行mvn clean为什么删不掉target目录
  2. 上海亚商投顾:沪指震荡反弹涨1.2% 中国移动创历史新高
  3. 小玩意:猜数字小游戏(Java GUI)
  4. bootstrap支付宝充值html,jQuery+Bootstrap移动端支付宝金额充值表单页面网页特效
  5. python 遍历是什么意思_python for语句的执行过程是什么
  6. ROS USB摄像头驱动安装
  7. Android培训班(48)
  8. python1002无标题_qq个性签名1002无标题
  9. renren-fast-vue登陆页面验证码显示不出来(21-8-7已解决)
  10. 前后端项目如何实现完美的OSS文件上传