SpringBoot文件的报表的下载

本文介绍了如何使用SpringBoot结合Hutool和POI库简化Java生成Excel报表的过程,包括导入辅助依赖、编写后端接口、处理数据库数据并将其写入Excel,最后实现文件的下载功能。
摘要由CSDN通过智能技术生成

背景:

在平时的代码业务中,通常会有生成报表的需求,但是对于java原生的API来实现的话,会很麻烦,而且最重要的是出现的结果可能还不尽人意。所以,我们这次来使用SpringBoot来实现报表功能的实现。

解决步骤:

1.导入辅助依赖
        <!--hutool工具包-->
         <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.3.7</version>
        </dependency>
        <!-- poi-ooxml依赖 -->
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>4.1.2</version>
        </dependency>

其中hutool-all依赖里面包含了许多的工具类,如日期、时间、字符串以及Excel工具类等等。

其中在进行生成Excel报表的时候我们需要依赖到poi-ooxml依赖。

2.编写后端接口

    步骤:

  1. 首先从数据库中获取要生成报表的数据
  2. 将查询出的数据对象转换成Map<String,Object>的形式,并将其放入到List集合中。
  3. 创建ExcelWriter对象,将数据写入到Excel中
// 创建ExcelWriter对象
ExcelWriter ew = ExcelUtil.getWriter(true);
// 将数据写入到Excel文件中
ew.write(list,true);

      4.下载报表

//5.这个Excel表下载下来
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8");
response.setHeader("Content-Disposition","attachment;filename=type.xlsx");
ServletOutputStream os = response.getOutputStream();
ew.flush(os, true);
ew.close();
IoUtil.close(System.out);
 3.完整代码示例
//1.从数据库中查询数据
List<Type> all = typeService.findAll();
if (CollectionUtil.isEmpty(all)){
    throw new CustomException("未找到数据");
}
List<Map<String,Object>> list = new ArrayList<>();
//2.取出每条数据 然后将其封装到Map集合中
for (Type type : all) {
    Map<String,Object> row = new HashMap<>();
    row.put("分类名称",type.getName());
    row.put("分类描述",type.getDescription());
    //3.将其放入List集合中
    list.add(row);
}
//4.创建ExelWriter对象 将数据写入Excel文件中
ExcelWriter ew = ExcelUtil.getWriter(true);
ew.write(list,true);
//5.这个Excel表下载下来
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8");
response.setHeader("Content-Disposition","attachment;filename=type.xlsx");
ServletOutputStream os = response.getOutputStream();
ew.flush(os, true);
ew.close();
IoUtil.close(System.out);
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Springboot可以通过整合第三方报表引擎来实现报表功能。一种常见的选择是使用基于Apache-2.0协议开源的中式报表引擎UReport2。UReport2可以通过在Springboot项目中添加相关依赖和配置来实现报表功能。 首先,需要创建一个基于Springboot的工程,并导入相关依赖。在项目的POM文件中添加以下依赖: - org.springframework.boot:spring-boot-starter-web:用于实现web功能的Springboot启动器。 - mysql:mysql-connector-java:用于连接MySQL数据库。 - org.springframework.boot:spring-boot-starter-jdbc:用于支持Springboot与数据库的集成。 - com.bstek.ureport:ureport2-console:2.2.9:UReport2报表引擎的依赖。 - com.alibaba:druid-spring-boot-starter:1.2.8:连接池的依赖。 然后,添加一个context.properties文件,用于配置数据库连接等相关配置。 接下来,可以通过整合MyBatisplus来实现分页查询功能。MyBatisplus是一个强大的ORM框架,可以简化数据库操作。可以使用分页插件来实现分页查询,并可以根据数据库表自动生成代码。 最后,根据需要的功能,在项目中使用UReport2引擎来生成报表。UReport2可以实现复杂查询和自定义SQL功能。 通过以上步骤,就可以在Springboot项目中实现报表功能了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [SpringBoot整合UReport2(报表开发)(配置类版)](https://blog.csdn.net/kkdaini/article/details/120985954)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [springboot整合MyBatisplus,实现分页查询、根据表自动生成代码、生成库里所有表对应的代码等功能](https://download.csdn.net/download/qq_33417321/88240573)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值