springboot系列(二十二):集成easypoi实现Excel文件的导入导出(准备篇)

Posted bug菌¹

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springboot系列(二十二):集成easypoi实现Excel文件的导入导出(准备篇)相关的知识,希望对你有一定的参考价值。

👨‍🎓作者:bug菌

🚫特别声明:原创不易,转载请附上原文出处链接和本文声明,谢谢配合。

🙏版权声明:文章里可能部分文字或者图片来源于互联网或者百度百科,如有侵权请联系bug菌处理。

【开发云】年年都是折扣价,不用四处薅羊毛

         嗨,家人们,我是bug菌呀,我又来啦。今天我们来聊点什么咧,OK,接着为大家更《springboot零基础入门教学》系列文章吧。希望能帮助更多的初学者们快速入门!

       小伙伴们在批阅文章的过程中如果觉得文章对您有一丝丝帮助,还请别吝啬您手里的赞呀,大胆的把文章 点亮👍吧,您的点赞三连(收藏⭐️+关注👨‍🎓+留言📃)就是对bug菌我创作道路上最好的鼓励与支持😘。时光不弃🏃🏻‍♀️,创作不停💕,加油☘️

一、前言🔥

       今天我要给大家介绍一个非常好用的poi工具类,暂时我先不透露它是什么,我们都知道,平时在开发web系统也好OA系统也罢,基本项目中都会涉及到一些文档的导入导出,对吧,比如在页面中,什么模板下载,一键批量导入,xxx表格数据本地excel批量下载等。这些需求听上去是不是再熟悉不过了,仿佛已经就到了闭着眼都能把实现出来,毕竟我也写过很多这类需求啦。

       所以这期我就特地给大家来讲讲,我在平日开发这么多类似的需求中,有哪些是让我觉得好用且会一直使用下去的小工具,虽然实现导入导出功能有成千上万种方法,但是怎么写最省事,图方便,且拓展宽,那我就觉得对于我来说是有利我开发,提供开发效率的,那么我就会优于使用它。而我就也想分享给你们,让你们也能在日常开发中能不重复造轮子就不重复造,提高工作效率,早点下班!保住头发。

       ... ...

       我要推荐的就是Easypoi。它的出现大大简化了开发中对文档导入导出的实现方式,不像poi那样要写大段工具类来读写文件内容,Easypoi真的绝绝子,可以让一个从没见接触过poi的人员,就可以非常轻松实现excel的导入导出,。

二、Easypoi概述🔥

1️⃣什么是easypoi?

       Easypoi功能就如同它的名字一样easy!也是一个poi工具类,但是没有poi使用那么复杂。

2️⃣为什么要使用easypoi?

       Easypoi主打的功能就是容易且易上手。它可以让一个从没见接触过poi的开发人员,就可以很轻松写出Excel导入导出,而不再是看很多api才可以完成这样的工作。

       它通过简单的注解和模板语言(熟悉的表达式语法),完成以前复杂的写法,EasyPoi快速实现excel导入导出功能,且修改导出格式简单粗暴,快速有效。

3️⃣easypoi提供了那些功能?

  • 基于注解的导入导出,修改注解就可以修改Excel。
  • 支持常用的样式自定义。
  • 基于map可以灵活定义的表头字段。
  • 支持一对多的导出,导入。
  • 支持模板的导出,一些常见的标签,自定义标签。
  • 支持html/Excel转换,如果模板还不能满足用户的变态需求,请用这个功能
  • 支持word的导出,支持图片,Excel

三、项目依赖配置🔥

在我们的pom.xml配置文件中,添加Easypoi依赖,具体依赖添加如下:

<!--easypoi依赖,实现excel文件导入导出-->
<dependency>
    <groupId>cn.afterturn</groupId>
    <artifactId>easypoi-base</artifactId>
    <version>3.2.0</version>
</dependency>
<dependency>
    <groupId>cn.afterturn</groupId>
    <artifactId>easypoi-web</artifactId>
    <version>3.2.0</version>
</dependency>
<dependency>
    <groupId>cn.afterturn</groupId>
    <artifactId>easypoi-annotation</artifactId>
    <version>3.2.0</version>
</dependency>

科普一下:

如上导入的三个包分别是什么作用?

  • easypoi-annotation 基础注解包,作用与实体对象上,拆分后方便maven多工程的依赖管理
  • easypoi-base 导入导出的工具包,可以完成Excel导入导出,Word导出等功能。
  • easypoi-web 耦合了spring-mvc 基于AbstractView,极大的简化spring-mvc下的导出功能。

       但随着springboot的越来越流行,不可免俗的easypoi也为我们推出了easypoi-spring-boot-starter,方便我们使用。

       所以我们就可以不再需要引入那么多相关的依赖啦,省的pom文件看着太长不好找。

       如下就是easypoi的starter,大家自行复制,粘贴到本地的pom.xml中即可。

<!-- 导出文件工具 EasyPoi实现Excel导入  -->
<dependency>
    <groupId>cn.afterturn</groupId>
    <artifactId>easypoi-spring-boot-starter</artifactId>
    <version>4.2.0</version>
</dependency>

四、Easypoi常用注解🔥

        接下来,我再给大家讲解一下,集成easypoi之后常用到的一些注解吧,也是为了方便大家更快速的入门easypoi。好伐?希望大家认真练习,在日后实际开发也能为大家省点时间,基本你熟悉这些注解就行了, 知道有那个注解是干啥用的,这就行了。

  • @Excel

表示作用到filed上面,是对Excel一列的一个描述。

这个是必须使用的注解,如果需求简单只使用这一个注解也是可以的,涵盖了常用的Excel需求。

比如:

String name();  //列名,支持name_id

int type() default 1;  //导出类型 1 是文本 2 是图片,3 是函数,10 是数字 默认是文本

double width() default 10.0D;  //列宽

String orderNum() default "0";  //列的排序,支持name_id
  • @ExcelCollection

表示一个集合,主要针对一对多的导出,比如一个老师对应多个科目,科目就可以用集合表示.

  • @ExcelEntity

表示一个继续深入导出的实体,但他没有太多的实际意义,只是告诉系统这个对象里面同样有导出的字段。

  • @ExcelIgnore

和名字一样表示这个字段被忽略跳过这个导导出。

  • @ExcelTarget

这个是作用于最外层的对象,描述这个对象的id,以便支持一个对象可以针对不同导出做出不同处理。

  • ...

       关于更多easypoi注解使用及详情,大家可以移步去Easypoi的官网,我这里就不一一列举了。Easypoi官网地址.

     ... ...

       ok,以上就是我这期的全部内容啦,如果还想学习更多,你可以看看我的往期热文推荐哦,每天积累一个奇淫小知识,日积月累下去,你一定能成为令人敬仰的大佬的。好啦,咱们下期见~

五、往期推荐🔥

六、文末🔥

        如果还想要学习更多,小伙伴们可关注bug菌专门为大家创建的专栏《springboot零基础入门教学》,从无到有,从零到一!希望能帮助到更多小伙伴们。

【开发云】年年都是折扣价,不用四处薅羊毛

       我是bug菌,一名想走👣出大山改变命运的程序猿。接下来的路还很长,都等待着我们去突破、去挑战。来吧,小伙伴们,我们一起加油!未来皆可期,fighting!

        最后送大家两句我很喜欢的话,与诸君共勉!


☘️做你想做的人,没有时间限制,只要愿意,什么时候都可以start。

🍀你能从现在开始改变,也可以一成不变,这件事,没有规矩可言,你可以活出最精彩的自己。


​​​

💌如果文章对您有所帮助,就请留下您的吧!(#^.^#);

💝如果喜欢bug菌分享的文章,就请给bug菌点个关注吧!(๑′ᴗ‵๑)づ╭❤~;

💗如果对文章有任何疑问,还请文末留言或者加群吧;

💞鉴于个人经验有限,所有观点及技术研点,如有异议,请直接回复参与讨论(请勿发表攻击言论,谢谢);

💕版权声明:原创不易,转载请附上原文出处链接和本文声明,版权所有,盗版必究!!!谢谢。

以上是关于springboot系列(二十二):集成easypoi实现Excel文件的导入导出(准备篇)的主要内容,如果未能解决你的问题,请参考以下文章

springboot系列(二十二):集成easypoi实现Excel文件的导入导出(准备篇)

springboot系列(二十二):集成easypoi实现Excel文件的导入导出(准备篇)

第二十二篇Flowable之SpringBoot集成FlowableUI

SpringBoot(二十二)集成RabbitMQ---MQ实战演练

Springboot系列(三十二):Springboot集成 kafka(环境搭建+演示)|超级详细,建议收藏

Springboot系列(三十二):Springboot集成 kafka(环境搭建+演示)|超级详细,建议收藏