EasyExcel简介
一 Excel导入导出的应用场景
1 数据导入
减轻录入工作量
2 数据导出
统计信息归档
3 数据传输
异构系统之间数据传输
二 EasyExcel简介
1 官方网站
https://github.com/alibaba/easyexcel
快速开始:https://www.yuque.com/easyexcel/doc/easyexcel
2 EasyExcel特点
Java领域解析、生成Excel比较有名的框架有Apache poi、jxl等。但他们都存在一个严重的问题就是非常的耗内存。如果你的系统并发量不大的话可能还行,但是一旦并发上来后一定会OOM或者JVM频繁的full gc。
EasyExcel是阿里巴巴开源的一个excel处理框架,以使用简单、节省内存著称。EasyExcel能大大减少占用内存的主要原因是在解析Excel时没有将文件数据一次性全部加载到内存中,而是从磁盘上一行行读取数据,逐个解析。
EasyExcel采用一行一行的解析模式,并将一行的解析结果以观察者的模式通知处理(AnalysisEventListener)
三 写实战
1 创建一个普通的maven项目
项目名:alibaba_easyexcel
2 pom中引入xml相关依赖
<dependencies><!-- easyexcel --><dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>2.1.7</version></dependency><!-- easyexcel依赖slf4j-simple --><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-simple</artifactId><version>1.7.5</version></dependency><!-- easyexcel依赖xmlbeans --><dependency><groupId>org.apache.xmlbeans</groupId><artifactId>xmlbeans</artifactId><version>3.1.0</version></dependency><!-- lombok --><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.10</version></dependency><!-- junit --><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency>
</dependencies>
3 创建实体类
@Data
public class ExcelStudentData {/*** 姓名*/@ExcelProperty(value = "姓名", index = 2)private String name;/*** 生日*/@DateTimeFormat("yyyy年MM月dd日HH时mm分ss秒")@ExcelProperty(value = "生日", index = 3)private Date birthday;/*** 薪资*/@NumberFormat("#.##%")@ExcelProperty(value = "薪资", index = 5)private Double salary;/*** 忽略密码字段*/@ExcelIgnoreprivate String password;
}
4 创建测试
public class ExcelWriteTest {/*** 功能描述:07版测试** @author cakin* @date 2020/11/30*/@Testpublic void simpleWrite07() {String fileName = "F:/temp/simpleWrite-07.xlsx";EasyExcel.write(fileName, ExcelStudentData.class).sheet("学生信息").doWrite(data());}/*** 功能描述:03版测试** @author cakin* @date 2020/11/30*/@Testpublic void simpleWrite03() {String fileName = "F:/temp/simpleWrite-03.xls";EasyExcel.write(fileName, ExcelStudentData.class).excelType(ExcelTypeEnum.XLS) // 默认是 XLSX.sheet("学生信息").doWrite(data());}/*** 功能描述:构造数据** @author cakin* @date 2020/11/30*/private List<ExcelStudentData> data() {List<ExcelStudentData> list = new ArrayList<>();for (int i = 0; i < 65535; i++) {ExcelStudentData data = new ExcelStudentData();data.setName("Helen" + i);data.setBirthday(new Date());data.setSalary(0.12345);data.setPassword("123456");list.add(data);}return list;}
}
四 测试
五 说明
- 07版本的Excel和03版本的写入方式有所不同,03版本是一次性写入,可能会导致内容溢出问题,07版本是一条条写入。07版本写入文件后,大小较03版要小。
- 03版本的Excel一次最多可写65536行,07版本没限制。
EasyExcel简介相关推荐
- easyexcel 简介、中文文档、中英对照文档 下载
easyexcel 文档 下载链接(含jar包.源码.pom) 组件名称 中文-文档-下载链接 中英对照-文档-下载链接 easyexcel-3.0.5.jar easyexcel-3.0.5-API ...
- EasyExcel简介 和 使用
EasyExcel简介 1.EasyExcel特点 Java领域解析.生成Excel比较有名的框架有Apache poi.jxl等.但他们都存在一个严重的问题就是非常的耗内存.如果你的系统并发量不大的 ...
- easyexcel 简介
easyexcel 简介 官网:https://www.yuque.com/easyexcel/doc/easyexcel 传统的excel处理工具(apache poi.jxl等)严重消耗内存(3兆 ...
- EasyExcel实现文件读取、导出、上传、下载操作
一.EasyExcel简介 Java解析.生成Excel比较有名的框架有Apache poi.jxl.但他们都存在一个严重的问题就是非常的耗内存,poi有一套SAX模式的API可以一定程度 ...
- EasyExcel读写Excel的基本使用
Excel导入导出的应用场景 1.数据导入:减轻录入工作量 2.数据导出:统计信息归档 3.数据传输:异构系统之间数据传输 EasyExcel简介 EasyExcel特点 Java领域解析.生成Exc ...
- easyexcel 动态列_easyexcel动态表头列导出SequenceDiagram 阅读源码事半功倍
EasyExcel简介 Java解析.生成Excel比较有名的框架有Apache poi.jxl.但他们都存在一个严重的问题就是非常的耗内存,poi有一套SAX模式的API可以一定程度的解决一些内存溢 ...
- easyExcel 使用指南详解
来源:easyExcel 使用指南详解 - 知乎 easyExcel简介 Java领域解析.生成Excel比较有名的框架有Apache poi.jxl等.但他们都存在一个严重的问题就是非常的耗内存.如 ...
- EasyExcel删除模版Sheet页
EasyExcel简介 git地址:https://github.com/alibaba/easyexcel 文档:https://easyexcel.opensource.alibaba.com/d ...
- EasyExcel实现Excel文件导入导出功能
一.EasyExcel简介 Java领域解析.生成Excel比较有名的框架有Apache poi.jxl等.但他们都存在一个严重的问题就是非常的耗内存.如果你的系统并发量不大的话可能还行,但是一旦并发 ...
最新文章
- 为了节省能量,人类演化出了“不合规律”的大脑神经元 | Nature
- windows C++ Opengl基础框架源码
- BTrace是一个非常不错的java诊断工具
- Android重点笔记,安卓listview 懒加载的实现笔记
- html代码 打开本地文件,打开本地HTML文件
- 1037C. Equalize
- PHP CURL 使用代理访问服务器
- C++局部变量和全局变量的初始化
- Android 应用开发(18)---在运行时请求权限
- 同步、异步、阻塞、非阻塞 简析
- android sharedpreference 清空,Android 从SharedPreferences中存储,检索,删除和清除数据...
- VScode Remote 直接打开远程服务器目录进行调试
- windows下使用linux terminal
- 2021MathorCup高校数学建模挑战赛——大数据竞赛的一些想法总结
- RedHat红帽RHEL7.2镜像下载以及安装教程(内含下载链接)
- Windows聚焦壁纸
- 国际品牌拧紧工具的优缺点
- 原力计划第5周榜单揭晓!
- unity 发光材质
- 谈谈VR游戏中的性能优化
热门文章
- 四通OKI5760SP针式打印机连续打印第一张正常,后面的对不上位置
- Cisco 3750/Cisco 4506 交换机vlan划分
- android listview排序分组,Android:如何对ListView的数据进行排序?
- 旺店通·企业奇门与金蝶云星空对接集成查询盘点单打通其他入库新增
- html如何设置填充,CSS填充距离怎么设置?
- PS4手柄 安卓 蓝牙 高延迟解决方案 小米红米 k20 miui
- python能在pdf上加内容吗_在Python中向现有PDF文档添加文本
- 百度地图以“准”作则,诠释AI时代新出行
- float到底是干什么的?
- 【史上最坑爹的游戏】002 关卡选择画面的实现