EasyExcel
2023-11-28 15:48:42 0 举报
AI智能生成
登录查看完整内容
根据官方文档整理的easyexcel笔记
作者其他创作
大纲/内容
Java解析、生成Excel比较有名的框架有Apache poi、jxl。但他们都存在一个严重的问题就是非常的耗内存,poi有一套SAX模式的API可以一定程度的解决一些内存溢出的问题,但POI还是有一些缺陷,比如07版Excel解压缩以及解压后存储都是在内存中完成的,内存消耗依然很大。easyexcel重写了poi对07版Excel的解析,一个3M的excel用POI sax解析依然需要100M左右内存,改用easyexcel可以降低到几M,并且再大的excel也不会出现内存溢出;03版依赖POI的sax模式,在上层做了模型转换的封装,让使用者更加简单方便
为什么会有easyExcel
EasyExcel是一个基于Java的简单、省内存的读写Excel的开源项目。在尽可能节约内存的情况下支持读写百M的Excel
64M内存1分钟内读取75M(46W行25列)的Excel
当然还有急速模式能更快,但是内存占用会在100M多一点
是什么
POI-SAX模式升级版
一句话
https://www.yuque.com/easyexcel/doc/easyexcel
官网文档
简介
<!-- https://mvnrepository.com/artifact/com.alibaba/easyexcel --> <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>2.2.10</version> </dependency>
POM
简单写
write
listerner
read
快速开始
DateTimeFormat
NumberFormat
format
ColumnWidth
ContentFontStyle
ContentLoopMerge
ContentRowHeight
ContentStyle
HeadFontStyle
HeadRowHeight
HeadStyle
OnceAbsoluteMerge
write.style
ExcelIgnore
ExcelIgnoreUnannotated
ExcelProperty
样例
注解
24列42MB
导入excel数据
耗时5分20s
简单存库逻辑耗时
耗时1分钟
无存库逻辑耗时
windwos本地环境实测
org.apache.tomcat.util.http.fileupload.impl.SizeLimitExceededException: the request was rejected because its size (51565076) exceeds the configured maximum (10485760)\tat org.apache.tomcat.util.http.fileupload.impl.FileItemIteratorImpl.init(FileItemIteratorImpl.java:146) ~[tomcat-embed-core-9.0.44.jar:9.0.44]\tat org.apache.tomcat.util.http.fileupload.impl.FileItemIteratorImpl.getMultiPartStream(FileItemIteratorImpl.java:190) ~[tomcat-embed-core-9.0.44.jar:9.0.44]\tat org.apache.tomcat.util.http.fileupload.impl.FileItemIteratorImpl.findNextItem(FileItemIteratorImpl.java:209) ~[tomcat-embed-core-9.0.44.jar:9.0.44]\tat org.apache.tomcat.util.http.fileupload.impl.FileItemIteratorImpl.<init>(FileItemIteratorImpl.java:127) ~[tomcat-embed-core-9.0.44.jar:9.0.44]\tat org.apache.tomcat.util.http.fileupload.FileUploadBase.getItemIterator(FileUploadBase.java:256) ~[tomcat-embed-core-9.0.44.jar:9.0.44]\tat org.apache.tomcat.util.http.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:280) ~[tomcat-embed-core-9.0.44.jar:9.0.44]\tat org.apache.catalina.connector.Request.parseParts(Request.java:2922) ~[tomcat-embed-core-9.0.44.jar:9.0.44]\tat org.apache.catalina.connector.Request.getParts(Request.java:2824) ~[tomcat-embed-core-9.0.44.jar:9.0.44]\tat org.apache.catalina.connector.RequestFacade.getParts(RequestFacade.java:1098) ~[tomcat-embed-core-9.0.44.jar:9.0.44]
分支主题
报错
servlet: multipart: max-file-size: 80MB max-request-size: 80MB
解决方案
上传文件大小限制
测试
入口类,用于构建开始各种操作
EasyExcel
构建出一个 ReadWorkbook WriteWorkbook,可以理解成一个excel对象,一个excel只要构建一个
ExcelReaderBuilderExcelWriterBuilder
ExcelReaderSheetBuilder ExcelWriterSheetBuilder
在每一行读取完毕后都会调用ReadListener来处理数据
ReadListener
在每一个操作包括创建单元格、创建表格等都会调用WriteHandler来处理数据
WriteHandler
常见类解析
常见API
该文档均按照官方文档整理。
0 条评论
回复 删除
下一页