EasyExcel 自定义Excel模版数据填充
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模版数据填充相关推荐
- 基与easyExcel实现excel模版导出
Easyexcel官方文档 excel模版位置: 模版数据填充处理:{.对应的实体对象字段名} <dependency><groupId>com.alibaba</gro ...
- Excel模板数据填充导出
Excel模板数据填充导出 需求描述: POI实现 1.添加依赖: <dependency><groupId>org.apache.poi</groupId>< ...
- 阿里云EasyExcel读写excel表数据
阿里云EasyExcel读取excel表数据 1.待读取的excel表test.xls 2.导入Maven依赖 <dependency><groupId>com.alibaba ...
- poi实现的excel模板数据填充
解析并填充数据: 在这里插入代码片 package com.dys.app.util;import java.io.File; import java.io.FileInputStream; impo ...
- 踩坑:EasyExcel导出excel导出数据为空
我再java代码中导出excel 导出数据为空如下图 问题探究 经过断点排查数据 发现数据取出来了 那么问题就不在取数据而在数据写入部分 经过排查翻阅博客发现了这么一句话 读写反射对象用到了Cglib ...
- easyexcel 检查表头是否匹配_Java EasyExcel读取Excel表头数据的方法及示例代码
1、读取表头数据代码/** * 读取表头数据 * * * 1. 创建excel对应的实体对象 参照{@link DemoData} * * 2. 由于默认异步读取excel,所以需要创建excel一行 ...
- java操控easyexcel读取excel表格数据为null或部分字段为null
数据部分字段为null或者全部为null: 可以看到很多字段出现null,解决办法很简单如下: 一.实体类中需要添加toString方法(快捷生成toString键:Ctrl+Ins) @Overri ...
- EasyExcel实现Excel文件导入导出
1 EasyExcel简介 EasyExcel是一个基于Java的简单.省内存的读写Excel的开源项目.在尽可能节约内存的情况下支持读写百M的Excel. github地址: https://git ...
- EasyExcel实现Excel文件导入导出功能
一.EasyExcel简介 Java领域解析.生成Excel比较有名的框架有Apache poi.jxl等.但他们都存在一个严重的问题就是非常的耗内存.如果你的系统并发量不大的话可能还行,但是一旦并发 ...
最新文章
- 汽车HUD(Head-up Display)的技术难点
- express组合gulp自动更新代码重启浏览器
- android端 socket长连接 架构
- 全球及中国商用杠铃架行业营销策略及投资建议分析报告2021-2027年版
- 计算机应用技术国外现状,浅析计算机应用技术的现状及发展趋势
- Master of GCD(差分数组||线段树)
- 开源神器,无需一行代码就能搞定机器学习,不会数学也能上手
- 学习web前端要了解的HTML5知识有哪些?
- openwrt里面的高深代码-两行shell脚本
- Gradle Eclipse插件教程
- jar的MANIFEST.MF配置了Class-Path, java -classpath设置无效
- PRD产品需求文档原型模版
- windows环境下neo4j下载安装配置
- html网站使用js实现记住账号密码功能
- Active Directory的DirectoryEntry与DirectorySearcher初识及Filter语法
- Maya 2018 for Mac中文破解版永久激活方法含注册机
- 序列化Serializable serialVersionUID的作用
- Android P SELinux (三) 权限检查原理与调试
- 5G发展的五大动力和四大挑战
- 网页快照(Snapshot)使用的相关研究(萌新向总结)
热门文章
- 执行mvn clean为什么删不掉target目录
- 上海亚商投顾:沪指震荡反弹涨1.2% 中国移动创历史新高
- 小玩意:猜数字小游戏(Java GUI)
- bootstrap支付宝充值html,jQuery+Bootstrap移动端支付宝金额充值表单页面网页特效
- python 遍历是什么意思_python for语句的执行过程是什么
- ROS USB摄像头驱动安装
- Android培训班(48)
- python1002无标题_qq个性签名1002无标题
- renren-fast-vue登陆页面验证码显示不出来(21-8-7已解决)
- 前后端项目如何实现完美的OSS文件上传