【在线教育】EasyExcel入门(一)

简介: EasyExcel入门

1. EasyExcel 入门


1.1 EasyExcel概述


EasyExcel是一个基于Java的简单、省内存的读写Excel的开源项目。在尽可能节约内存的情况下支持读写百M的Excel工具。

官网:EasyExcel(文档已经迁移) · 语雀

github地址:GitHub - alibaba/easyexcel: 快速、简洁、解决大文件内存溢出的java处理Excel工具

1.2 EasyExcel 特点


  • Java解析、生成Excel比较有名的框架有Apache poi、jxl,但他们都存在一个严重的问题就是非常的耗内存。
  • EasyExcel 重写了poi,使一个3M的excel只需要几M内存,并且再大的excel不会出现内存溢出。
  • 64M内存1分钟内读取75M(46W行25列)的Excel。

1.3 环境搭建


1.3.1 测试父项目


image.png

修改pom文件

<dependencies><!--测试--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId></dependency></dependencies>

1.3.2 测试excel项目


  • 项目名:zx-test-excel

image.png

修改pom,添加依赖<dependencies><dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.1.1</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency></dependencies>

1.4 基本操作


image.png

1.4.1 测试JavaBean


image.png

packagecom.czxy.zx.demo01;
importcom.alibaba.excel.annotation.ExcelProperty;
importlombok.Data;
importjava.util.Date;
/*** Created by liangtong.*/@DatapublicclassStudent {
@ExcelProperty("编号")
privateStringid;
@ExcelProperty("姓名")
privateStringname;
@ExcelProperty("年龄")
privateIntegerage;
@ExcelProperty("电话")
privateStringtelephone;
@ExcelProperty("邮箱")
privateStringemail;
@ExcelProperty("生日")
privateDatebrithday;
}

1.4.2 测试文件路径


packagecom.czxy.zx.demo01;
importorg.junit.jupiter.api.Test;
/*** @author 桐叔* @email liangtong@itcast.cn*/publicclassTestExcel {
/*** 获得根路径* @return*/publicStringgetPath() {
returnthis.getClass().getResource("/").getPath();
    }
@TestpublicvoidtestPath() {
// 测试文件路径Stringpath=getPath() +"student_demo.xls";
System.out.println(path);
    }
}

1.4.3 写操作


  • excel 属于 office组件一个软件
  • 存在若干版本,大体上划分2种情况,2007前的,2007年后的
  • 2003版:扩展名 xls,内容比较少,最大单元格 IV65536 ,256列(IV)
  • 2007版:扩展名 xlsx,内容较多,最大单元格 XFD1048576,16384列(XFD)
/*** 准备数据* @return*/privateList<Student>getData(){
List<Student>list=newArrayList<Student>();
for(inti=0 ; i<10 ; i++){
Studentstudent=newStudent();
student.setId("stu"+i);
student.setName("wang"+i);
student.setAge( 18+i );
student.setTelephone("1361234"+i);
student.setEmail("wang"+i+"@czxy.com");
student.setBrithday(newDate());
list.add(student);
        }
returnlist;
    }
@TestpublicvoidtestWrite(){
Stringfile=getPath() +"student_demo.xls";
//EasyExcel.write(位置,对象).sheet("表名").doWrite(数据);EasyExcel.write(file,Student.class).sheet("班级").doWrite(getData());
    }

1.4.3 读操作


  • 处理类:
  • 处理类需要实现 AnalysisEventListener 接口
packagecom.czxy.zx.demo01;
importcom.alibaba.excel.context.AnalysisContext;
importcom.alibaba.excel.event.AnalysisEventListener;
importcom.czxy.zx.domain.Student;
/*** @author 桐叔* @email liangtong@itcast.cn*/publicclassStudentListenerextendsAnalysisEventListener<Student> {
@Overridepublicvoidinvoke(Studentstudent, AnalysisContextanalysisContext) {
System.out.println(student);
    }
@OverridepublicvoiddoAfterAllAnalysed(AnalysisContextanalysisContext) {
System.out.println("解析完成");
    }
}
测试@TestpublicvoidtestRead(){
Stringfile=getPath() +"student_demo.xls";
//EasyExcel.read(文件, 封装对象, 处理类).sheet("表").doRead();EasyExcel.read(file, Student.class, newStudentListener()).sheet("班级").doRead();
    }
相关文章
|
8月前
|
前端开发 JavaScript Java
JAVAEE框架技术之4springMVC入门
JAVAEE框架技术之4springMVC入门
139 0
JAVAEE框架技术之4springMVC入门
|
5月前
|
Java Spring 开发者
Java Web开发新潮流:Vaadin与Spring Boot强强联手,打造高效便捷的应用体验!
【8月更文挑战第31天】《Vaadin与Spring Boot集成:最佳实践指南》介绍了如何结合Vaadin和Spring Boot的优势进行高效Java Web开发。文章首先概述了集成的基本步骤,包括引入依赖和配置自动功能,然后通过示例展示了如何创建和使用Vaadin组件。相较于传统框架,这种集成方式简化了配置、提升了开发效率并便于部署。尽管可能存在性能和学习曲线方面的挑战,但合理的框架组合能显著提升应用开发的质量和速度。
100 0
|
5月前
|
SQL Java 数据库连接
Spring Boot联手MyBatis,打造开发利器:从入门到精通,实战教程带你飞越编程高峰!
【8月更文挑战第29天】Spring Boot与MyBatis分别是Java快速开发和持久层框架的优秀代表。本文通过整合Spring Boot与MyBatis,展示了如何在项目中添加相关依赖、配置数据源及MyBatis,并通过实战示例介绍了实体类、Mapper接口及Controller的创建过程。通过本文,你将学会如何利用这两款工具提高开发效率,实现数据的增删查改等复杂操作,为实际项目开发提供有力支持。
338 0
|
8月前
|
SQL 前端开发 Java
JavaEE精选-项目一
JavaEE精选-项目一
62 0
|
8月前
|
存储 物联网 大数据
Java+BS +saas云HIS系统源码SpringBoot+itext + POI + ureport2数字化医院系统源码
医院云HIS系统是一种运用云计算、大数据、物联网等新兴信息技术的业务和技术平台。它按照现代医疗卫生管理要求,在特定区域内以数字化形式收集、存储、传递和处理医疗卫生行业的数据。通过云HIS系统,可以实现区域内医疗卫生信息资源的集中统管、统一调配、按需服务,为居民、医疗机构、卫生管理机关和其他机构提供云服务。
94 1
|
监控 NoSQL 安全
《Spring Boot 2.6.0电商网站开发实战》电子版地址
Java工程师必备,书籍结合视频讲解,学习Java Spring Cloud微服务架构的必经之路。
138 0
《Spring Boot 2.6.0电商网站开发实战》电子版地址
|
JSON 前端开发 easyexcel
这年头谁还用POI,快来使用国人写的EasyExcel吧,SpringBoot+EasyExcel的快速入门
这年头谁还用POI,快来使用国人写的EasyExcel吧,SpringBoot+EasyExcel的快速入门
这年头谁还用POI,快来使用国人写的EasyExcel吧,SpringBoot+EasyExcel的快速入门
|
easyexcel Java API
【Alibaba工具型技术系列】「EasyExcel技术专题」实战技术针对于项目中常用的Excel操作指南
【Alibaba工具型技术系列】「EasyExcel技术专题」实战技术针对于项目中常用的Excel操作指南
1276 0
【Alibaba工具型技术系列】「EasyExcel技术专题」实战技术针对于项目中常用的Excel操作指南
|
监控 NoSQL 安全
《Spring Boot 2.6.0电商网站开发实战》电子版下载地址
Java工程师必备,书籍结合视频讲解,学习Java Spring Cloud微服务架构的必经之路。
99 0
《Spring Boot 2.6.0电商网站开发实战》电子版下载地址