easyexcel底层如何实现控制内存
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了easyexcel底层如何实现控制内存相关的知识,希望对你有一定的参考价值。
参考技术A 通过Alibaba的框架:EasyExcel。解析以及生成Excel有许多工具,Like(POI,JXL),但是他们的内存占用都比较严重,今天给大家介绍一款来自Alibaba的框架:EasyExcel。经过我不太严谨的初步测试(哈哈),能够使内存占用减少80%左右。
easyexcel重写了poi对07版Excel的解析,能够原本一个3M的excel用POIsax依然需要100M左右内存降低到几M,并且再大的excel不会出现内存溢出,03版依赖POI的sax模式。
SpringBoot入门教程:下载导出Excel(EasyExcel)
一:Apache POI 和 EasyExcel的区别
- Apache POI是将数据一次性全部读入到内存中,当导入excel文件过大时会容易内存溢出
java.lang.OutOfMemoryError
。 - EasyExcel 不会将全部数据一次性全部加载到内存,而是分批加载,EasyExcel不会出现内存溢出问题。
- EasyExcel是对Apache POI的进一步封装,提供了更加使用简便的功能。
二:常用注解
2.1 列
@ExcelProperty(value = "手机号", index = 0, order = 0, converter = CustomPhoneConverter.class)
:用于定义Excel表头,value: 列名,index:该类位于第几列,从0开始,order:排序,converter:转换器,用来对值做自定义处理。@ExcelIgnore
:忽略该列,忽略的不会出现在Excel中。
2.2 格式化
@NumberFormat("#.##")
:对数字进行格式化。@DateTimeFormat("yyyy年MM月d
以上是关于easyexcel底层如何实现控制内存的主要内容,如果未能解决你的问题,请参考以下文章
SpringBoot基于EasyExcel解析Excel实现文件导出导入读取写入
Java+EasyExcel实现文件导入导出,导入导出如此简单