今
日
一
码
当我们需要导入大Excel时候,用POI会内存溢出,这时候我们用EasyExcel来解决,它底层采用的是SAX(Simple Api for Xml)事件驱动,解析xml的方式来解析excel文件,就不会出现内存溢出的情况,并且性能很高。
首先我们看他的read源码,通过Easy Excel工厂创建ExcelReaderBuilder
ExcelReaderBuilder构造方法里创建了ReadWorkbook
Head则是我们放接收实体的数据。
readLister在1.8后可以直接用PageReadListener
我们来看看pageReadListener
里面有个final修饰的consumer,这个有accept方法,batch_count=100,当读取的值太多,超过100的时候,则会直接消费,防止所有数据都读取到内存里,导致内存溢出。
后面doRead()里用excel分析器来分析excel的sheet
分析之后,则开始调用executor方法,执行xlsx来分析我们的excel。
excel写入则和读取前面的都类似,创建WriteWorkbook,之后运行doWrite(),这里在配合注解写入指定excel列。
关注我...每天陪你一起学习进步