EasyPoi实战系列集合

news2024/10/5 14:25:02

历史文章(文章累计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 = "姓名")。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/763308.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【黑马头条之对象存储服务MinIO】

本笔记内容为黑马头条项目的对象存储服务MinIO部分 目录 一、MinIO简介 二、MinIO特点 三、开箱使用 1、安装启动 2、管理控制台 四、快速入门 1、创建工程&#xff0c;导入pom依赖 五、封装MinIO为starter 1、创建模块heima-file-starter 2、配置类 3、封装操作mi…

VBA命令及语法列表之字典Dictionaries相关

【分享成果&#xff0c;随喜正能量】真正的修佛之人。首先&#xff0c;得明白自己的来处和归宿&#xff0c;懂得敬畏自己的生命和他人的生命&#xff0c;尽其所能释放善意。学会悲天悯人&#xff0c;渡人的同时渡己&#xff0c;始终走在止于至善的路上。真正的慈悲为怀&#xf…

有哪些方法可将PPT转成PDF?分享三个方法给大家!

将PPT&#xff08;演示文稿&#xff09;文件转换为PDF&#xff08;便携式文档格式&#xff09;是一种常见的需求&#xff0c;特别适用于共享演示文稿、打印或以静态格式保存的情况。本文将介绍三种简单易用的方法来实现PPT转PDF的操作&#xff0c;其中方法一是使用记灵在线工具…

MarkDown 生成目录的树结构

1. tree 命令的使用 Markdown没有办法直接生成目录的树结构&#xff0c;需要借助Windows下的tree命令&#xff0c;具体如下&#xff1a; 显示所有目录&#xff0c;不包含目录下的文件&#xff0c;tree 文件夹路径 显示所有目录&#xff0c;包含目录下的文件&#xff0c;tree …

命令行查看numpy版本

问题 查看numpy版本 解决方法 python -c "import numpy;print(numpy.version.version)"成功

OpenCV中reshape()函数详解-改变矩阵的通道数,对矩阵元素进行序列化

文章目录 1、函数原型2、示例3、结论&#xff1a; OpenCV中reshape()函数详解-改变矩阵的通道数&#xff0c;对矩阵元素进行序列化 在opencv中reshape函数&#xff0c;既可以改变矩阵的通道数&#xff0c;又可以对矩阵元素进行序列化 1、函数原型 Mat Mat::reshape(int cn, in…

echarts_雷达图

目录 雷达图(radar)需求[1] 复制案例[2] 色调统一[3] 配置项实现代码 雷达图(radar) 需求 [1] 复制案例 如上图&#xff0c;先复制一个最简单的雷达图 [2] 色调统一 直角系坐标都是使用xAxis/yAxis配置项&#xff0c;但是雷达图使用的是radar配置项配置坐标系。 配置项注解区…

GoFrame v2.5 版本发布,企业级 Golang 开发框架

大家好啊&#xff0c;GoFrame 框架今天发布了 v2.5.0 正式版本啦&#xff01;&#x1f44f;&#x1f44f;&#x1f44f;&#x1f44f; 本次版本主要是对已有功能组件以及开发工具上的改进工作。其中&#xff0c;开发工具新增了 gf gen ctrl 命令&#xff0c;以规范化定义、开发…

【C#】并行编程实战:使用并发集合

在上一章的并行编程实现里&#xff0c;为了保护资源&#xff0c;我们对共享资源加锁&#xff08;各种同步原语&#xff09;来进行保护&#xff0c;避免多线程同时访问&#xff08;主要是写入&#xff09;。但一般来说&#xff0c;共享资源是一个可以由多个线程读写的集合&#…

AR气象博物馆模拟体验提升青少年认知

国际气象节主要目的是唤起人们对气象工作的重视和热爱。近年来&#xff0c;极端天气频发&#xff0c;人们需要提高警惕&#xff0c;AR气象远程普利用ar技术特有的沉浸式的体感互动&#xff0c;通过模拟演练提升体验者的安全防范意识和求生技巧。 系统结合VR虚拟现实、AR增强现实…

【多模态】1、几种多模态 vision-language 任务和数据集介绍

文章目录 一、Phrase Grounding1.1 概念介绍1.2 常用数据集介绍 二、Referring Expression Comprehension&#xff08;REC&#xff09;2.1 概念介绍2.2 常用数据集介绍 三、Visual Question Answer&#xff08;VQA&#xff09;3.1 概念介绍 四、Image Caption4.1 概念介绍 现在…

MySQL-数据库读写分离(上)

♥️作者&#xff1a;小刘在C站 ♥️个人主页&#xff1a; 小刘主页 ♥️努力不一定有回报&#xff0c;但一定会有收获加油&#xff01;一起努力&#xff0c;共赴美好人生&#xff01; ♥️学习两年总结出的运维经验&#xff0c;以及思科模拟器全套网络实验教程。专栏&#xf…

(学习笔记-TCP连接建立)为什么每次建立TCP连接时,初始化的序列号都要求不一样?

主要原因有两个方面&#xff1a; 为了防止历史报文被下一个相同的四元组的连接接收(主要)为了安全性&#xff0c;防止黑客伪造相同序列号的TCP报文被对方接收 展开第一点&#xff1a; 假设每次建立连接&#xff0c;客户端恶核服务端的初始化序列号都是从0开始&#xff1a; 过程…

Mysql教程(一):Mysql数据模型和SQL语法分析

Mysql教程&#xff08;一&#xff09;&#xff1a;Mysql数据模型和SQL语法分析 1、Mysql数据模型 1.1 关系型数据库&#xff08;RDBMS&#xff09; 概念&#xff1a;建立在关系模型基础上&#xff0c;由多张相互连接的二维表组成的数据库。 特点&#xff1a; 使用表存储数…

H5活动营销系统怎么做?H5活动营销系统有哪些优势?

H5营销系统广泛用于各类线下活动场景&#xff0c;即将传统线下活动搬到线上&#xff0c;结合互动和奖励设计&#xff0c;引导用户产生转发、分享等目标行为&#xff0c;从而扩大活动影响力&#xff0c;以获得曝光和转化。因此&#xff0c;h5活动营销系统通常用于拉新促活、刺激…

【LeetCode 75】第三题(1431)拥有最多糖果的孩子

题目: 示例: 分析: 题目是简单题,也确实简单,不过示例给出的解释有些复杂,甚至有些误导.我们只需要遍历得出分配糖果之前的糖果最大值,然后再依次遍历每个孩子拥有的糖果数,若某孩子原有的糖果数加上待分配的所有糖果数大于等于分配前的糖果最大值,则给该孩子对应下标的结果置…

Linux--进程替换(转载)

目录 0.引入 1.替换原理 2.替换函数 execl execv execlp execle execvp execvpe execve 3.调用自定义程序 4.exec函数解释 5.命名理解 0.引入 创建子进程的目的是什么&#xff1f; 就是为了让子进程帮我执行特定的任务 让子进程执行父进程的一部分代码 如果子进程…

深度学习——自编码器AutoEncoder

基本概念 概述 自编码器&#xff08;Autoencoder&#xff09;是一种无监督学习的神经网络模型&#xff0c;用于学习数据的低维表示。它由编码器&#xff08;Encoder&#xff09;和解码器&#xff08;Decoder&#xff09;两部分组成&#xff0c;通过将输入数据压缩到低维编码空…

小程序使用云函数调用第三方api避免域名备案

小程序使用云函数调用第三方api避免域名备案 在小程序开发中&#xff0c;如果需要调用第三方 API&#xff0c;但由于域名备案的限制无法直接在小程序中使用&#xff0c;我们可以利用云函数来解决这个问题。 1. 开通云开发 使用微信开发者工具打开小程序项目&#xff0c;点击…

IDEA 提交git 之后撤回操作

方式一 1.选择提交记录&#xff1b; 2、 右键git然后选择drop commit&#xff1b; 弊端&#xff1a;会将修改的代码全部进行删除操作 打开 IDEA 的 本地历史记录功能&#xff0c;对修改的内容进行复原 方式二&#xff1a; 1、撤回commit 2、选择项目——>右击git——…