历史文章(文章累计480+)
《国内最全的Spring Boot系列之一》
《国内最全的Spring Boot系列之二》
《国内最全的Spring Boot系列之三》
《国内最全的Spring Boot系列之四》
《国内最全的Spring Boot系列之五》
《国内最全的Spring Boot系列之六》
导读
Hi,大家好,我是悟纤。
我就是我,不一样的烟火。我就是我,与众不同的小苹果。
EasyPoi相关的文章写了有一阵子了,这一篇简单的做一个汇总,也算是高一个段落了。后续大家对于哪些方面感兴趣的话,也可以留言~
01.《【EasyPoi实战系列】Spring Boot集成EasyPoi - 第467篇》
在项目的开发工程中,经常有导入导出数据的常见功能场景,Apache的POI是处理导入导出中最常用的,但是其原生的用法太复杂,很繁琐,总是在Copy… ,无意间发现一款简单粗暴的神器EasyPoi,EasyPoi也是基于POI的,在Spring Boot中也是做了很好的封装,让我们能够在Spring Boot 快速地使用EasyPoi 进行开发,很方便,而且支持多种格式的导入导出。
对于EasyPoi基本的使用的话,可以查看这一篇进行学习。
02.《【EasyPoi实战系列】Spring Boot使用EasyPoi的注解让表格更漂亮以及图片的导出 - 第468篇》
注解@Excel的基本使用以及如何导出图片的相关操作。
(1)@Excel属性width:设置列宽。
(2)@Excel属性format:设置日期格式。
(3)@Excel属性replace:类型转换。
(4)@Excel属性type和imageType:图片导出的设置。
03.《【EasyPoi实战系列】Spring Boot使用EasyPoi实现一对多的导出 - 第469篇》
在数据的项目中,导出的表格的要求是复杂多样化的,有各式各样的复杂的导出格式要满足,比如要导出如下的数据:
观察下,这里的导出结果是有合并单元格的了:课程名称和老师名称。
如果从数据结构来看的话,就是1对多的数据结构如何进行表格的导出。
04.《【EasyPoi实战系列】Spring Boot使用EasyPoi实现多Sheet导出 - 第470篇》
在前面的几个小节中,介绍的都是单个Sheet的导出,在实际的项目中,希望导出多个Sheet的数据,实现的效果实际上就是将前面讲到的两个数据表,原先导出的是两个Excel,然后这里导出了一个Excel多个Sheet的方式。
05.《【EasyPoi实战系列】Spring Boot使用EasyPoi动态控制导出的列 - 第471篇》
注解的导出,规定我们必须把model写好,并且注解写好,每次导出的Excel都是固定的,无法动态控制导出的列,虽然可以通过id来处理一个案例,但是自由度远远不够,本节介绍另外一种导出的方式,自由度十足。
要实现动态导出的列,需要将前面注解的部分,通过代码的方式进行实现,这里使用的是ExcelExportEntity,对于ExcelExportEntity最重要的两个配置,是name和key;其中name是列显示的名称,key是在map中对应的key。
06.《100万数据导出,居然爆炸了OutOfMemoryError?【EasyPoi实战系列】- 第472篇》
大数据导出是当我们的导出数量在几万,到上百万的数据时,一次从数据库查询这么多数据加载到内存然后写入会对我们的内存和CPU都产生压力,这个时候需要我们像分页一样处理导出分段写入Excel缓解Excel的压力。
07.《导出下拉列表的两种小技巧【EasyPoi实战系列】- 第473篇》
在实际的excel中,会有下拉的一个选项,供用户进行下拉修改下拉的选项。
对于这样的需求如何实现呢?
@Excel加入 addressList 是否生成下拉的选项,默认false
目前下拉只支持replace和dict两个取值地方生成。
08.《数据脱敏/换行/枚举的处理【EasyPoi实战系列】- 第474篇》
数据脱敏分为两种方法,一种是简单的,在注解或者ExcelExportEntity设置属性既可以,规则如下:
(1)规则1:采用保留头和尾的方式,中间数据加星号
如:身份证 6_4 则保留 370101********1234
手机号 3_4 则保留 131****1234
(2)规则2:采用确定隐藏字段的进行隐藏,优先保留头
如:姓名 1,3 表示最大隐藏3位,最小一位
09.《模板文件导出Excel【EasyPoi实战系列】- 第478篇》
模板是处理复杂Excel的简单方法,复杂的Excel样式,可以用Excel直接编辑,完美的避开了代码编写样式的雷区,同时指令的支持,也提了模板的有效性。
10.《Excel的Html预览和html转Excel【EasyPoi实战系列】》
当你要导出一个比较复杂的Excel的时候,无论是使用模板还是注解都是比较难实现的,这个时候,我们应该怎么办呢?
要导出一个比较复杂的Excel,无论用模板还是注解都比较难实现,这里就可以使用到html转Excel,使用方法如下:
自己搞个html,然后用模板引擎,beetl,freemark等生成html,然后调用easypoi提供的方法转换成Excel,因为html的标签以及规则大家比Excel要熟悉的多,更容易编写复杂的table,然后easypoi转换成Excel再导出,麻烦了点,但是可以处理一些特定的情况,也同样生成两个版本的Excel都支持
11.《导入Excel数据【EasyPoi实战系列】》
看下导入整体要解决的问题:
(1)在SpringBoot中如何接收文件流:
使用MultipartFile就可以接收到前端传送到后端的文件流。
(2)如何读取Exel文件流,并且解析每一行的数据:
使用EasyPoi提供的类ExcelImportUtil的importExcel(InputStream inputstream, Class<?> pojoClass, ImportParams params)。
(3)实体类和Excel表格的单元格是如何对应的:
只需要在实体类上添加注解@Excel(name = "姓名")。