【在线教育】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();
    }
相关文章
|
供应链 JavaScript 安全
SBOM概念和Java生成方式
SBOM概念和Java生成方式
|
JSON easyexcel Java
EasyExcel的简单使用
EasyExcel的简单使用,以及如何通过postman进行导入导出功能的调试
2014 1
|
JSON fastjson Java
FastJson 完全学习指南(初学者从零入门)
摘要:本文是FastJson的入门学习指南,主要内容包括: JSON基础:介绍JSON格式特点、键值对规则、数组和对象格式,以及嵌套结构的访问方式。FastJson是阿里巴巴开源的高性能JSON解析库,具有速度快、功能全、使用简单等优势,并介绍如何引入依赖,如何替换Springboot默认的JackJson。 核心API: 序列化:将Java对象转换为JSON字符串,演示对象、List和Map的序列化方法; 反序列化:将JSON字符串转回Java对象,展示基本对象转换方法;
3936 77
|
存储 数据管理 调度
HarmonyOS架构理解:揭开鸿蒙系统的神秘面纱
【10月更文挑战第21天】华为的鸿蒙系统(HarmonyOS)以其独特的分布式架构备受关注。该架构包括分布式软总线、分布式数据管理和分布式任务调度。分布式软总线实现设备间的无缝连接;分布式数据管理支持跨设备数据共享;分布式任务调度则实现跨设备任务协同。这些特性为开发者提供了强大的工具,助力智能设备的未来发展。
1082 1
|
JSON 安全 fastjson
高性能 JSON 处理:为何选择 Fastjson?
Fastjson 是由阿里巴巴集团开发的一个高性能的 JSON 处理库,它支持 Java 对象与 JSON 字符串之间的互相转换。
2709 0
高性能 JSON 处理:为何选择 Fastjson?
|
easyexcel Java 关系型数据库
阿里巴巴-EasyExcel 基于Java的简单、省内存的读写Excel
该文章主要介绍了在Java应用中如何使用EasyExcel技术完成对Excel文件的导入和导出操作,包括环境搭建、基本概念、快速入门、进阶操作和综合应用等内容,并提供了相关代码示例和注意事项。
 阿里巴巴-EasyExcel 基于Java的简单、省内存的读写Excel
|
算法 索引 Python
使用Python基础与蒙特卡洛算法实现排列组合
使用Python基础与蒙特卡洛算法实现排列组合
542 0
|
easyexcel Java API
【Alibaba工具型技术系列】「EasyExcel技术专题」实战技术针对于项目中常用的Excel操作指南
【Alibaba工具型技术系列】「EasyExcel技术专题」实战技术针对于项目中常用的Excel操作指南
1829 0
【Alibaba工具型技术系列】「EasyExcel技术专题」实战技术针对于项目中常用的Excel操作指南
|
存储 easyexcel 大数据
探索EasyExcel库:简化大数据Excel操作的利器
在企业应用和数据处理中,Excel表格是常用的数据交换和存储方式。然而,处理大量数据的Excel文件可能是一项繁琐的任务。EasyExcel库作为一款强大的Excel操作工具,可以帮助我们更轻松地进行大数据量的Excel文件读写、导入导出等操作。本文将深入探讨EasyExcel库的基本概念、特点,以及如何在实际应用中使用它进行Excel操作。
976 0
实现EasyExcel对Excel读操作
实现EasyExcel对Excel读操作