SpringBoot整合EasyExcel

springboot整合easyExcel的全流程,跟着做就能出来。对项目没有侵入要求。0侵入,可插拔

依赖

   <!--操作Excel依赖--><dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.1.1</version></dependency>

配置文件没有,不用操心这个

准备工作

一张excel表+一个实体类

@Data
@ColumnWidth(20)
public class area {@ExcelProperty(value = "id",index = 0)private int id;@ExcelProperty(value = "姓名",index = 1)private String name;
}

 读excel的流程之 创建

AnalysisEventListener监听器,读到数据,封装成area对象后会触发这个invoke方法。
@Slf4j
public class areaReadListener extends AnalysisEventListener<area> {// 每读一次,会调用该invoke方法一次,就是想对获取到的数据进行什么操作@Overridepublic void invoke(area data, AnalysisContext context) {System.out.println("data = " + data);log.info(data + "保存成功");}// 全部读完之后,会调用该方法(这个暂时用不到)@Overridepublic void doAfterAllAnalysed(AnalysisContext context) {// TODO......}
}

开始读文件

  @Testpublic void test05() {/*** Build excel the read  构建一个读的工作簿** @param pathName  读文件的路径*            File path to read.* @param head  每一行数据存储的到的实体类的类型的class*            Annotate the class for configuration information.* @param readListener  监听器 没读一行内容都会调用该对象的invoke,在invoke可以操作使用读取到的数据*            Read listener.* @return Excel reader builder.*/
//        获取工作簿对象						excel文件位置   最后一个参数是监听器类ExcelReaderBuilder readWorkBook = EasyExcel.read("D:\\B-project\\springboot-mybatis\\src\\main\\java\\com\\example\\springmybatis\\area.xlsx", area.class, new areaReadListener());
//        获取工作表对象ExcelReaderSheetBuilder sheet = readWorkBook.sheet();
//        读取表中的内容sheet.doRead();}

开始写文件

getdata 方法生成数据,
sheet.doWrite(areaList); 写入方法填入数据集合,完成写入
   public static List<area> getdata() {ArrayList<area> list = new ArrayList<>();for (int i = 0; i < 10; i++) {area area = new area();area.setId(i);area.setName("测试"+i);list.add(area);}return list;}@Testpublic void test02(){ExcelWriterBuilder writeWorkBook = EasyExcel.write("D:\\B-project\\springboot-mybatis\\src\\main\\java\\com\\example\\springmybatis\\area.xlsx", area.class);ExcelWriterSheetBuilder sheet = writeWorkBook.sheet();//doWrite(initData()之前提前加入的生成数据的方法。List<area> areaList = getdata();sheet.doWrite(areaList);}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/163697.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【扩散模型】5、Diffusion models beat GAN | 使用类别引导图像生成

论文&#xff1a;Diffusion models beat GAN on image Synthesis 代码&#xff1a;https://github.com/openai/guided-diffusion 出处&#xff1a;OPENAI | NIPS2021 时间&#xff1a;2021 贡献&#xff1a; 在本文章之前&#xff0c;扩散模型生成的图片已经非常逼真了&am…

【Linux】vim

文章目录 一、vim是什么&#xff1f;二 、命令模式三、插入模式四、底行模式五、vim配置 一、vim是什么&#xff1f; Vim是一个强大的文本编辑器&#xff0c;它是Vi的增强版&#xff0c;支持多种语法高亮、插件扩展、多模式操作等功能。Vim有三种基本的工作模式&#xff1a;命…

Spring-Spring 之底层架构核心概念解析

BeanDefinition BeanDefinition表示Bean定义&#xff0c;BeanDefinition中存在很多属性用来描述一个Bean的特点。比如&#xff1a; class&#xff0c;表示Bean类型scope&#xff0c;表示Bean作用域&#xff0c;单例或原型等lazyInit&#xff1a;表示Bean是否是懒加载initMeth…

Redis-持久化

RDB快照&#xff08;snapshot&#xff09; &#xff08;1&#xff09;Redis将内存数据库快照保存dump.rdb的二进制文件中 &#xff08;2&#xff09;Redis将内存flush到磁盘文件的默认策略&#xff1a; N秒内数据集至少有M个改动 &#xff08;3&#xff09;Redis允许手动flush&…

选择企业云盘?品牌推荐和评价解析

企业云盘是如今热门的企业协作工具&#xff0c;为企业提供了文件存储、文件共享服务。市面上的企业云盘千千万&#xff0c;到底哪个企业云盘好用&#xff1f;哪些品牌值得信赖呢&#xff1f; 好用的企业云盘&#xff0c;不能不提&#xff0c;Zoho Workdrive企业云盘为企业提供…

变量环境、变量提升和暂时性死区

JavaScript中的提升 在JavaScript中&#xff0c;“Hoisting”&#xff08;提升&#xff09;是一种特性&#xff0c;它将变量和函数的声明移动到作用域的顶部。这意味着可以在声明之前使用这些变量和函数&#xff0c;而不会报错。 当JavaScript代码执行时&#xff0c;会经过两个…

UI设计工具都哪些常用的,推荐这5款

对于UI设计师来说&#xff0c;日常工作无非是围绕“需求分析”→设计实施→“开发交付”这三个环节来进行。 然而&#xff0c;在每个环节中&#xff0c;设计师使用的工具却完全不同。在这里&#xff0c;我收集整理了UI设计师在日常工作中常用的五种工具&#xff0c;希望能为新…

SSM之spring注解式缓存redis

&#x1f3c5;我是默&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; ​ &#x1f31f;在这里&#xff0c;我要推荐给大家我的专栏《Linux》。&#x1f3af;&#x1f3af; &#x1f680;无论你是编程小白&#xff0c;还是有一定基础的程序员&#xff0c;这…

只需十分钟,快速入门Python3!

文章目录 前言1. 原始数据类型和运算符2. 变量和集合3. 流程控制和迭代器4. 函数5. 类6. 模块7. 高级用法关于Python技术储备一、Python所有方向的学习路线二、Python基础学习视频三、精品Python学习书籍四、Python工具包项目源码合集①Python工具包②Python实战案例③Python小…

物理场仿真教程(一)——Ubuntu下Salome_meca 软件安装

一、什么是Salome_meca &#xff1f; Salome_meca 是一个开源的有限元分析软件套件&#xff0c;主要用于模拟和分析复杂的力学问题。它是 Salome 平台的一部分&#xff0c;Salome 是一个通用的集成化软件环境&#xff0c;用于建模、预处理、模拟和后处理各种复杂的工程和科学问…

游戏开发中的“御用中介“

点击上方亿元程序员关注和★星标 引言 大家好&#xff0c;我是亿元程序员&#xff0c;一位有着8年游戏行业经验的主程。 本系列是《和8年游戏主程一起学习设计模式》&#xff0c;让糟糕的代码在潜移默化中升华&#xff0c;欢迎大家关注分享收藏订阅。 游戏开发中的"御用…

即插即用篇 | YOLOv8 引入反向残差注意力模块 iRMB | 《ICCV 2023 最新论文》

论文地址:https://arxiv.org/abs/2301.01146 代码地址:https://github.com/zhangzjn/EMO 本论文着重于开发现代、高效、轻量级的模型,用于进行密集预测,同时在参数、FLOPs和性能之间进行权衡。倒置残差块(IRB)作为轻量级CNN的基础设施,但在基于注意力的研究中尚未找到对…