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实现文件导入导出

Java+EasyExcel实现文件导入导出,导入导出如此简单

SpringBoot整合easyexcel实现Excel的导出

DispatchQueues 是如何在底层实现的?

easyexcel快速入门