今天小编给大家分享一下EasyExcel怎么引用的相关知识点,内容详细,逻辑清晰,相信大部分人免费云主机域名都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。导出数据到Excel
是非常常见的后端需求之一,今天来推荐一款阿里出品的Excel
操作神器:EasyExcel
。EasyExcel
从其依赖树来看是对apache-poi
的封装,笔者从开始接触Excel
处理就选用了EasyExcel
,避免了广泛流传的apache-poi
导致的内存泄漏问题。引入EasyExcel
的Maven
如下:当前(2020-09
)的最新版本为2.2.6
。Excel
文件主要围绕读和写操作进行处理,EasyExcel
的API
也是围绕这两个方面进行设计。先看读操作的相关API
:可以看到,读操作主要使用Builder
模式和事件监听(或者可以理解为「观察者模式」)的设计。一般情况下,上面的代码可以简化如下:如果需要读取数据并且转换为对应的对象列表,则需要指定标题行的Class
,结合注解@ExcelProperty
使用:「如果数据量巨大,建议使用Map
类型读取和操作数据对象,否则大量的反射操作会使读取数据的耗时大大增加,极端情况下,例如属性多的时候反射操作的耗时有可能比读取和遍历的时间长」。接着看写操作的API
:ExcelWriterBuilder
中还有很多样式、行处理器、转换器设置等方法,笔者觉得不常用,这里不做举例,内容的样式通常在输出文件之后再次加工会更加容易操作。写操作一般可以简化如下:下面简单介绍一下生产中用到的实用技巧。使用EasyExcel
多线程读建议在限定的前提条件下使用:源文件已经被分割成多个小文件,并且每个小文件的标题行和列数一致。机器内存要充足,因为并发读取的结果最后需要合并成一个大的结果集,全部数据存放在内存中。经常遇到外部反馈的多份文件需要紧急进行数据分析或者交叉校对,为了加快文件读取,笔者通常使用这种方式批量读取格式一致的Excel文件一个简单的例子如下:这里采用ThreadPoolExecutor#submit()
提交并发读的任务,然后使用Future#get()
等待所有任务完成之后再合并最终的读取结果。注意,一般文件的写操作不能并发执行,否则很大的概率会导致数据错乱多Sheet
写,其实就是使用同一个ExcelWriter
实例,写入多个WriteSheet
实例中,每个Sheet
的标题行可以通过WriteSheet
实例中的配置属性进行覆盖,代码如下:在一些数据量比较大的场景下,可以考虑分页查询和批量写,其实就是分页查询原始数据 -> 数据聚合或者转换 -> 写目标数据 -> 下一页查询....
。其实数据量少的情况下,一次性全量查询和全量写也只是分页查询和批量写的一个特例,因此可以把查询、转换和写操作抽象成一个可复用的模板方法:下面的例子适用于Servlet容器,常见的如Tomcat,应用于spring-boot-starter-webExcel
文件上传跟普通文件上传的操作差不多,然后使用EasyExcel
的ExcelReader
读取请求对象MultipartHttpServletRequest
中文件部分抽象的InputStream
实例即可:使用Postman
请求如下:使用EasyExcel
进行Excel
文件导出也比较简单,只需要把响应对象HttpServletResponse
中携带的OutputStream
对象附着到EasyExcel
的ExcelWriter
实例即可:这里需要注意一下:文件名如果包含中文,需要进行URL
编码,否则一定会乱码。无论导入或者导出,如果数据量大比较耗时,使用了Nginx
的话记得调整Nginx
中的连接、读写超时时间的上限配置。使用SpringBoot
需要调整spring.servlet.multipart.max-request-size
和spring.servlet.multipart.max-file-size
的配置值,避免上传的文件过大出现异常。以上就是“EasyExcel怎么引用”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注百云主机行业资讯频道。
这篇文章将为大家详细讲解有关怎么用CSS将div的高度设置为100%,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 答:也为父母设置100%的身高 如果您尝试使用样式规则height: 100%;将div容器的高度设置为浏览…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。