融资项目——EasyExcel操作Excel文件

EasyExcel是Alibaba集团开源的EasyExcel技术,该技术是针对Apache POI技术的封装和优化,主要解决了POI技术的耗内存问题,并且提供了较好的API使用。不需要大量的代码就可以实现excel的操作功能。

1.EasyExcel的配置

首先引入依赖,具体如下:

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

 <dependency>
     <groupId>org.apache.poi</groupId>
     <artifactId>poi-ooxml</artifactId>
     <version>3.17</version>
 </dependency>

 <dependency>
     <groupId>org.apache.poi</groupId>
     <artifactId>poi-ooxml-schemas</artifactId>
     <version>3.17</version>
 </dependency>

 <dependency>
     <groupId>org.apche.poi</groupId>
     <artifactId>poi</artifactId>
     <version>3.17</version>
 </dependency>
  1. 向excel写入数据

    EasyExcel.write(FilePath,xxxEntity.class).excelType(ExcelTypeEnum.XLS/XLSX).sheet("aaa").dowrite(xxxEntity数据)

FilePath表示Excel的路径,aaa表示该ecxel一张名为aaa的表,excelType表示excel文件是xls还是xlsx,向这张表中写入类型为xxxEntity的数据(xxxEntity数据可为单个xxxEntity也为xxxEntity数组),表头为xxxEntity对象的各个属性。

如果希望表头是自定义的,需要在对应的xxxEntity实体对象类中的属性上方加入@ExcelProperty("自定义名称")注解。

  1. 读取excel文件数据

EasyExcel读取excel文件时首先需要创建监听器类,其通过继承AnalysisEventListener类实现。具体代码如下:

public class xxxEntityListener extends AnalysisEventListener<xxxEntity>{
    //解析每一条数据时调用
    @Override
    public void invoke(xxxEntity data,AnalysisContext context){
            log.info("数据内容:",data);
    }

     //excel所有数据解析完成时调用
    @Override
    public void doAfterAllAnalysed(AnalysisContext context){
            log.info("所有数据解析完成");
    }
}

然后通过下面的代码读取excel文件:

EasyExcel.read(FilePath,xxxEntity.class,new xxxEntityListener()).sheet().doRead();
相关推荐
一只爱打拳的程序猿几秒前
【Spring】更加简单的将对象存入Spring中并使用
java·后端·spring
杨荧2 分钟前
【JAVA毕业设计】基于Vue和SpringBoot的服装商城系统学科竞赛管理系统
java·开发语言·vue.js·spring boot·spring cloud·java-ee·kafka
minDuck3 分钟前
ruoyi-vue集成tianai-captcha验证码
java·前端·vue.js
为将者,自当识天晓地。22 分钟前
c++多线程
java·开发语言
daqinzl30 分钟前
java获取机器ip、mac
java·mac·ip
激流丶1 小时前
【Kafka 实战】如何解决Kafka Topic数量过多带来的性能问题?
java·大数据·kafka·topic
Themberfue1 小时前
Java多线程详解⑤(全程干货!!!)线程安全问题 || 锁 || synchronized
java·开发语言·线程·多线程·synchronized·
让学习成为一种生活方式1 小时前
R包下载太慢安装中止的解决策略-R语言003
java·数据库·r语言
晨曦_子画1 小时前
编程语言之战:AI 之后的 Kotlin 与 Java
android·java·开发语言·人工智能·kotlin
南宫生2 小时前
贪心算法习题其三【力扣】【算法学习day.20】
java·数据结构·学习·算法·leetcode·贪心算法