SpringBoot如何用easyPOI导出excel文件

简介: 在工作中,经常需要我们用Java代码导出一些数据,保存在Excel中。这是非常实用的Excel导出功能,如果我们用SpringBoot结合EasyPOI框架,可以非常方便地实现这个功能。

在工作中,经常需要我们用Java代码导出一些数据,保存在Excel中。这是非常实用的Excel导出功能,如果我们用SpringBoot结合EasyPOI框架,可以非常方便地实现这个功能。


在maven项目中,添加easyPOI的支持

b57ffc97c8fb40668edabb571f8c53ee.png


打开项目的pom文件,在dependencies节点中添加easypoi框架的依赖。


<!-- poi -->


<dependency>


           <groupId>cn.afterturn</groupId>


           <artifactId>easypoi-base</artifactId>


           <version>3.0.3</version>


       </dependency>


       <dependency>


           <groupId>cn.afterturn</groupId>


           <artifactId>easypoi-web</artifactId>


           <version>3.0.3</version>


       </dependency>


       <dependency>


           <groupId>cn.afterturn</groupId>


           <artifactId>easypoi-annotation</artifactId>


           <version>3.0.3</version>


       </dependency>


请耐心等待jar包的下载。


创建需要导出的类别


意思就是,比如说你要导出一个图书列表,那么每一个图书的信息必然是对应Java中的某一个类的实例。那么,Excel中的一个图书列表,对应Java中的ArrayList<Book>


e80e99e584ec4498bc6d1f0fe838e9ff.png


8e3cdbdf5c8b47b1b0c0a119189f48cc.png


以上是书本类的最初版本,接下来,如果我们要导出Excel的话,我们还需要设置书本Book类中的属性分别在Excel中的第几列?


在easypoi框架,我们依然用注解的方式去设置属性在excel中的第几列。



@Excel(name="书本编号", orderNum = "0")


private String no;


我们需要给实体类中的每一个属性上面打一个@Excel注解,然后在这个注解右边写一个圆括号,再在圆括号中设置当前属性在Excel表头名称和列号。

828cc889527f4b938cbe088ba865d15d.png

设置好属性后,再生成对应的get,set方法。

编写导出Excel的接口exportBooks

58a5789ec7cb4ea186ba6fea2fc383df.png

c3b1b8499352437ebbdce51cdcc08d7f.png

先测试能否访问这个接口。


接口调通以后,用ArrayList去装一本书:


Book b1 = new Book();


b1.setNo("Book001");


b1.setName("汤姆索亚历险记");


b1.setAuthor("马克吐温");


b1.setPrice(28.8);


List books = new ArrayList<Book>();


books.add(b1);


接下来要做Excel的导出,说白了,就是把你刚才新建的ArrayList对象,根据一定的格式直接保存为一个Excel文件。


这边需要用到一个PoiUtils工具类,把这个类放在你的项目中即可。


1e650249d7914c238d5ea03d90b74c2e.png

最后,注意方法不能有返回值,改为void,防止IO流冲突。

3eda48d38bde4af999171edb79cbaf48.png


相关文章
|
XML Java Maven
springboot-多环境配置文件
本文介绍了如何创建开发和生产环境的配置文件,并在IDEA和Maven中进行配置。开发环境中,通过设置profile为`dev`来指定配置文件;生产环境中,使用Maven命令参数`-Pprod`打包并指定配置文件。公共配置可放在`application.yml`中统一管理。日志配置需确保`logback-spring.xml`中的profile正确,以保证日志正常输出。
1295 4
springboot-多环境配置文件
|
存储 前端开发 Java
Springboot静态资源映射及文件映射
在Spring Boot项目中,为了解决前端访问后端存储的图片问题,起初尝试通过静态资源映射实现,但发现这种方式仅能访问打包时已存在的文件。对于动态上传的图片(如头像),需采用资源映射配置,将特定路径映射到服务器上的文件夹,确保新上传的图片能即时访问。例如,通过`addResourceHandler(&quot;/img/**&quot;).addResourceLocations(&quot;file:E:\\myProject\\forum_server\\&quot;)`配置,使前端可通过URL直接访问图片。
937 0
Springboot静态资源映射及文件映射
Excel中如何批量重命名工作表与将每个工作表导出到单独Excel文件
本文介绍了如何在Excel中使用VBA批量重命名工作表、根据单元格内容修改颜色,以及将工作表导出为独立文件的方法。同时提供了Python实现导出工作表的代码示例,适用于自动化处理Excel文档。
|
人工智能 自然语言处理 Java
FastExcel:开源的 JAVA 解析 Excel 工具,集成 AI 通过自然语言处理 Excel 文件,完全兼容 EasyExcel
FastExcel 是一款基于 Java 的高性能 Excel 处理工具,专注于优化大规模数据处理,提供简洁易用的 API 和流式操作能力,支持从 EasyExcel 无缝迁移。
4012 65
FastExcel:开源的 JAVA 解析 Excel 工具,集成 AI 通过自然语言处理 Excel 文件,完全兼容 EasyExcel
|
人工智能 算法 安全
使用CodeBuddy实现批量转换PPT、Excel、Word为PDF文件工具
通过 CodeBuddy 实现本地批量转换工具,让复杂的文档处理需求转化为 “需求描述→代码生成→一键运行” 的极简流程,真正实现 “技术为效率服务” 的目标。感兴趣的快来体验下把
978 10
|
前端开发 Cloud Native Java
Java||Springboot读取本地目录的文件和文件结构,读取服务器文档目录数据供前端渲染的API实现
博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
Java||Springboot读取本地目录的文件和文件结构,读取服务器文档目录数据供前端渲染的API实现
|
文字识别 Serverless 开发工具
【全自动改PDF名】批量OCR识别提取PDF自定义指定区域内容保存到 Excel 以及根据PDF文件内容的标题来批量重命名
学校和教育机构常需处理成绩单、报名表等PDF文件。通过OCR技术,可自动提取学生信息并录入Excel,便于统计分析和存档管理。本文介绍使用阿里云服务实现批量OCR识别、内容提取、重命名及导出表格的完整步骤,包括开通相关服务、编写代码、部署函数计算和设置自动化触发器等。提供Python示例代码和详细操作指南,帮助用户高效处理PDF文件。 链接: - 百度网盘:[链接](https://pan.baidu.com/s/1mWsg7mDZq2pZ8xdKzdn5Hg?pwd=8866) - 腾讯网盘:[链接](https://share.weiyun.com/a77jklXK)
2871 5
|
Python
按条件将Excel文件拆分到不同的工作表
使用Python的pandas库,可以轻松将Excel文件按条件拆分到不同的工作表中。本文通过一个示例代码展示了如何生成一个包含总成绩表和三个班级表的Excel文件。代码首先创建了一个包含学生姓名、班级和各科成绩的数据框,然后按班级分组,将每个班级的数据分别写入不同的工作表。最后,生成的Excel文件将包含四个工作表,分别为总成绩表和三个班级的成绩表。
414 6
按条件将Excel文件拆分到不同的工作表
|
Python
批量将不同的工作簿合并到同一个Excel文件
本文介绍如何使用Python的`pandas`库批量合并不同工作簿至同一Excel文件。通过模拟生成三个班级的成绩数据,分别保存为Excel文件,再将这些文件合并成一个包含所有班级成绩的总成绩单。步骤包括安装必要库、生成数据、保存与合并工作簿。
603 6