最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

EasyExcel

运维笔记admin3浏览0评论

EasyExcel

EasyExcel

EasyExcel-简介

  • 简介
  • 项目搭建
    • 导入依赖
    • 编写测试实体类
    • 编写测试类
    • 测试结果

简介

Java解析、生成Excel比较有名的框架有Apache poijxl。但他们都存在一个严重的问题就是非常的耗内存,poi有一套SAX模式的API可以一定程度的解决一些内存溢出的问题,但POI还是有一些缺陷,比如07版Excel解压缩以及解压后存储都是在内存中完成的,内存消耗依然很大。easyexcel重写了poi对07版Excel的解析,一个3M的excel用POI sax解析依然需要100M左右内存,改用easyexcel可以降低到几M,并且再大的excel也不会出现内存溢出;03版依赖POI的sax模式,在上层做了模型转换的封装,让使用者更加简单方便

项目搭建

导入依赖

<!--easyExcel依赖导入-->
<dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>2.2.3</version>
</dependency>

编写测试实体类

package entry;import com.alibaba.excel.annotation.ExcelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;import java.util.Date;/*** Created by jdx on 2022/6/17 上午12:10*/
/*相当于实体类中的get set方法*/
@Data
/*相当于有参构造*/
@AllArgsConstructor
/*相当于无参构造*/
@NoArgsConstructor
public class Student {/*@ExcelProperty* 1、详相当于表头定义* 2、实体别名* */@ExcelProperty("姓名")private String name;@ExcelProperty("入学时间")private String admissionATime;@ExcelProperty("性别")private Boolean sex;@ExcelProperty("联系方式")private String contactDetails;@ExcelProperty("班级")private String className;@ExcelProperty("成绩")private String score;@ExcelProperty("邮箱")private String e_mail;
}

编写测试类

package test;import com.alibaba.excel.EasyExcel;
import org.junit.Test;
import entry.Student;import java.util.ArrayList;/*** Created by jdx on 2022/6/17 上午12:13*/
public class test {@Testpublic static void main(String[] args) {/*新建一个存放输出流对象的list*/ArrayList<Student> students = new ArrayList<Student>();/*新建一个Student对象*/Student student01 = new Student("宫本武藏","2016-03",true,"12345678911","九年级十一班","A","12345612@qq.com");Student student02 = new Student("娜可露露","2016-03",false,"12345678912","九年级十一班","A","123452336@qq.com");Student student03 = new Student("不知火舞","2016-03",false,"12345678913","九年级十一班","A","12332e456@qq.com");Student student04 = new Student("橘右京","2016-03",true,"12345678914","九年级十一班","A","12ew3456@qq.com");Student student05 = new Student("孙悟空","2016-03",true,"12345678915","九年级十一班","A","12341256@qq.com");Student student06 = new Student("三藏法师","2016-03",true,"12345678916","九年级十一班","A","123432156@qq.com");Student student07 = new Student("猪八戒","2016-03",true,"12345678917","九年级十一班","A","12342156@qq.com");Student student08 = new Student("耀","2016-03",true,"12345678918","九年级十一班","A","12324456@qq.com");Student student09 = new Student("李逍遥","2016-03",true,"12345678919","九年级十一班","A","123434456@qq.com");Student student10 = new Student("赵琳儿","2016-03",false,"12345678910","九年级十一班","A","12343456@qq.com");Student student11 = new Student("李白a","2016-03",true,"12345678922","九年级十一班","A","123343456@qq.com");/*添加数据*/students.add(student01);students.add(student02);students.add(student03);students.add(student04);students.add(student05);students.add(student06);students.add(student07);students.add(student08);students.add(student09);students.add(student10);students.add(student11);/*定义文件名称*/String fileName = "在校花名册.xlsx";/*测试输出方式* 1、.write 方法参数*       文件名称*       构造对象* 2、.sheet 方法参数*       sheet名称* 3、.doWrite 方法*       传入输出流对象*/EasyExcel.write(fileName,Student.class).sheet("ceshi").doWrite(students);}}

测试结果

至此项目搭建成功以及简单测试均以实现。

发布评论

评论列表(0)

  1. 暂无评论