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

EasyExcelFactory 导入导出功能的实战使用

EasyExcelFactory 导入导出功能的实战使用分享:

1、jar包引入

        <!-- 阿里巴巴Excel处理--><dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.0.6</version></dependency>

2、excel文档准备

注意:首行名称要和后面实体类里注解的名称保持一样,否则失效。

3、实体类

@Data
@HeadRowHeight(20)
@ColumnWidth(20)
public class DemoData {@ExcelProperty("id")private Long id;@ExcelProperty("name")private String name;@ExcelProperty("model")private String model;@ExcelProperty("tail")private String tail;}

4、控制层接口样例

 @PostMapping("/import/userBox")public ResponseResult<Boolean> importUserBox(@RequestParam("file") MultipartFile file,@RequestParam("start") Integer  start,@RequestParam(value = "sheetNo", required = false, defaultValue = "0") Integer sheetNo) {try {UserBoxConfigListener listener = new UserBoxConfigListener();EasyExcelFactory.read(file.getInputStream(), UserBoxConfigBo.class, listener).sheet(sheetNo).headRowNumber(start);List<UserBoxConfigAddReq> list = listener.getList();return ResponseResult.success(userBoxConfigService.batchAdd(list));} catch (Exception e) {e.printStackTrace();return ResponseResult.error(e.getMessage());}}

5、监听类继承


@Slf4j
public class UserBoxConfigListener extends AnalysisEventListener<UserBoxConfigBo> {private List<UserBoxConfigAddReq> list;public UserBoxConfigListener() {list = new ArrayList<>();}@Overridepublic void invoke(UserBoxConfigBo data, AnalysisContext context) {UserBoxConfigAddReq item = BeanUtil.copy(data, UserBoxConfigAddReq.class);list.add(item);}@Overridepublic void doAfterAllAnalysed(AnalysisContext context) {log.info("表格成功解析");}public List<UserBoxConfigAddReq> getList() {return list;}
}

 

6、postman 接口调用

调用后成功解析获取到数据。

参考文章:基本使用

基本配置

使用演示

到此、告一段落,后期我们会分享其高级用法,敬请期待!

相关文章:

  • 《数据结构》第七章:树和森林
  • 解开缺省参数与函数重载的衣裳
  • 超过GPT3.5?Mixtral 8*7B 模型结构分析
  • 开源项目_大模型应用_Chat2DB
  • krpano制作无水印360°场景方法
  • JavaScript库jquery的使用方法
  • 04-了解所有权
  • Spring事件发布ApplicationEventPublisher原理
  • DL专栏—笔记目录
  • 1.C语言——基础知识
  • LeetCode-135】分发糖果(贪心)
  • CMake+QT+大漠插件的桌面应用开发(QThread)
  • 使用vue2写一个太极图,并且点击旋转
  • postman测试导入文件
  • 多协议转换网关BL120ML实现Modbus、楼宇自控、电力协议转Modbus
  • [Vue CLI 3] 配置解析之 css.extract
  • Apache Zeppelin在Apache Trafodion上的可视化
  • go append函数以及写入
  • iOS 系统授权开发
  • Java反射-动态类加载和重新加载
  • Java应用性能调优
  • Java知识点总结(JDBC-连接步骤及CRUD)
  • JS数组方法汇总
  • Mocha测试初探
  • mysql innodb 索引使用指南
  • MySQL的数据类型
  • React-生命周期杂记
  • session共享问题解决方案
  • springboot_database项目介绍
  • Swoft 源码剖析 - 代码自动更新机制
  • underscore源码剖析之整体架构
  • 表单中readonly的input等标签,禁止光标进入(focus)的几种方式
  • 不用申请服务号就可以开发微信支付/支付宝/QQ钱包支付!附:直接可用的代码+demo...
  • 动态魔术使用DBMS_SQL
  • 短视频宝贝=慢?阿里巴巴工程师这样秒开短视频
  • 算法系列——算法入门之递归分而治之思想的实现
  • 自动记录MySQL慢查询快照脚本
  • 京东物流联手山西图灵打造智能供应链,让阅读更有趣 ...
  • ​3ds Max插件CG MAGIC图形板块为您提升线条效率!
  • ​html.parser --- 简单的 HTML 和 XHTML 解析器​
  • ​力扣解法汇总946-验证栈序列
  • #免费 苹果M系芯片Macbook电脑MacOS使用Bash脚本写入(读写)NTFS硬盘教程
  • $.ajax,axios,fetch三种ajax请求的区别
  • (ZT)一个美国文科博士的YardLife
  • (附源码)spring boot网络空间安全实验教学示范中心网站 毕业设计 111454
  • (原創) X61用戶,小心你的上蓋!! (NB) (ThinkPad) (X61)
  • (转)ABI是什么
  • **PyTorch月学习计划 - 第一周;第6-7天: 自动梯度(Autograd)**
  • .java 指数平滑_转载:二次指数平滑法求预测值的Java代码
  • .NET C# 使用 SetWindowsHookEx 监听鼠标或键盘消息以及此方法的坑
  • .NET Framework 3.5中序列化成JSON数据及JSON数据的反序列化,以及jQuery的调用JSON
  • .NET LINQ 通常分 Syntax Query 和Syntax Method
  • .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能)
  • .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景
  • .netcore 6.0/7.0项目迁移至.netcore 8.0 注意事项