springboot+easyExcel
工作时,我们有时候会遇见这样的场景,老板要求我们在数据库中统计一些数据,并以excel表格的方式发送给老板。点击导出结果导出当前结果选择对应的文件导出即可通过sql语句可以直接得到我们需要的目标数据那么我们通过sql语句不能拿到我们想要的数据,而是需要进一步在java中进行进一步计算,这时我们就无法使用navicat了。这时我们使用的就是java中的excel操作:easyExcel本文介绍spr
·
一.介绍
工作时,我们有时候会遇见这样的场景,老板要求我们在数据库中统计一些数据,并以excel表格的方式发送给老板。这时,我们想到的一种方法是通过navicat中查询结果转化为excel的功能,具体操作如下:
- 点击导出结果
- 导出当前结果
- 选择对应的文件导出即可
使用该方法的前提:通过sql语句可以直接得到我们需要的目标数据
那么我们通过sql语句不能拿到我们想要的数据,而是需要进一步在java中进行进一步计算,这时我们就无法使用navicat了。这时我们使用的就是java中的excel操作:easyExcel
本文介绍springboot中如何使用easyExcel
二.使用
1.依赖引入
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.1.6</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.17</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-schemas</artifactId>
<version>3.17</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.17</version>
</dependency>
2. 定义实体类
我们想要得到的excel表格数据一定有某种关系对应,类似于sql查询结果的关系对应。这里我们需要定义这种数据类型,如下:
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Data
public class ExcelUser {
@ExcelProperty("用户ID1")
private String id;
@ExcelProperty("用户昵称")
private String nickname;
@ExcelProperty("发布活动数量")
private String count;
@ExcelProperty("所属城市")
private String city;
@ExcelProperty("入驻时间")
private String created_at;
@ExcelProperty("上次登陆时间")
private String updated_at;
@ExcelProperty("联系手机")
private String phone;
@ExcelProperty("联系微信")
private String wechat;
@ExcelProperty("latitude")
private Double latitude;
@ExcelProperty("longitude")
private Double longitude;
}
@ExcelProperty注解标识了excel表中数据首行(字段)与数据的对应关系
3.将数据库数据转化为excel数据
public void putExcel() throws IOException {
//1.定义excel表格的存放位置
String filename = "D:\\user.xls";
//2.获得经过计算过后的数据,并封装到我们的excel实体对象ExcelUser中
List<ExcelUser> list=userService.selectMessageToExcel();
//3.创建一个ExcelWriter对象,通过建造者模式,指定这个ExcelWriter对象针对的文件和Excl实体对象
ExcelWriter excelWriter=EasyExcel.write(filename,ExcelUser.class).build();
//4. 创建一个工作簿,并指定名字
WriteSheet writeSheet = EasyExcel.writerSheet("信息").build();
//5.将list写入到工作簿中(并且工作簿与excel表绑定)
excelWriter.write(list,writeSheet);
}
4.得到对应的表格
这样我们就可以在对应的路径下得到表格了。
我们在再表格进行进一步的美化,就可以交给老板了。
三.总结
大量数据转化成excel的方法
- 在navicat中查询到对应的数据后,直接通过功能按钮,转化成excel。
适用场景:可以通过sql语句直接得到我们想要的数据 - 在java中适用easyExcel。
适用场景:需要通过复杂的代码逻辑才能得到数据结果。
easyExcel不仅可以生成excel表格,还可以导入excel表格,解析excel中的数据并存到数据库。更多可以参考官方网站
参考:easyExcel官网
更多推荐
已为社区贡献7条内容
所有评论(0)