如何使用Spring Boot导出数据到Excel表格

在开发应用程序时,经常会遇到将数据导出到Excel表格的需求。Spring Boot提供了简单而有效的方法来实现这个功能。本文将介绍如何使用Spring Boot和Apache POI库将数据导出到Excel表格,并提供一个示例代码来演示该过程。

1. 准备工作

首先,确保你的Spring Boot项目已经正确设置并且已经添加了相关的依赖并在filePath创建对应的Excel表格 。在本示例中,我们将使用Apache POI来处理Excel文件。你可以在项目的 pom.xml 文件中添加以下依赖:

xml 复制代码
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>5.2.4</version>
</dependency>
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>5.2.4</version>
</dependency>

这两个依赖分别是 poipoi-ooxml,它们提供了对Excel文件的处理和支持。

2. 创建导出功能

下面是一个简单的Spring Boot控制器方法,用于将数据导出到Excel表格:

java 复制代码
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

@RestController
public class ExcelExportController {

    @PostMapping("/exportToExcel")
    public void exportToExcel(@RequestParam String filePath) throws IOException {
        // Mock 4 条 Car 数据
        List<Car> carList = new ArrayList<>();
        carList.add(new Car("Red", "Toyota", 25000.00));
        carList.add(new Car("Blue", "Honda", 30000.00));
        carList.add(new Car("Black", "Ford", 28000.00));
        carList.add(new Car("White", "BMW", 45000.00));

        // 创建 Excel 工作簿和工作表
        Workbook workbook = new XSSFWorkbook();
        Sheet sheet = workbook.createSheet("CarList");

        // 创建表头行
        Row headerRow = sheet.createRow(0);
        headerRow.createCell(0).setCellValue("Color");
        headerRow.createCell(1).setCellValue("Brand");
        headerRow.createCell(2).setCellValue("Price");

        // 写入数据行
        int rowNum = 1;
        for (Car car : carList) {
            Row row = sheet.createRow(rowNum++);
            row.createCell(0).setCellValue(car.getColor());
            row.createCell(1).setCellValue(car.getBrand());
            row.createCell(2).setCellValue(car.getPrice());
        }

        // 自动调整列宽
        for (int i = 0; i < 3; i++) {
            sheet.autoSizeColumn(i);
        }

        // 写入文件
        try (FileOutputStream fileOut = new FileOutputStream(filePath)) {
            workbook.write(fileOut);
        } catch (IOException e) {
            throw new RuntimeException(e);
        } finally {
            workbook.close(); // 关闭工作簿释放资源
        }
    }
}

效果图如下:

3. 使用方法

通过POST请求调用 /exportToExcel 接口,并传递一个文件路径作为参数,即可将数据导出到Excel表格中。

4. 总结

本文介绍了如何使用Spring Boot和Apache POI库将数据导出到Excel表格的方法。通过一个简单的示例,你可以了解到实现这一功能的基本步骤和方法。在实际项目中,你可以根据需求对代码进行扩展和定制,以满足更复杂的导出需求。

希望本文对你有所帮助,如果有任何疑问或建议,请随时留言。

相关推荐
普通网友7 小时前
Springboot中使用Elasticsearch(部署+使用+讲解 最完整)
spring boot·elasticsearch·jenkins
笃行3508 小时前
向量数据库单独建一套,这笔账划不划算
后端
weixin_431600448 小时前
Agent Workflow 学习向:Code 节点,比模板更强的变量加工
后端·python·学习·ai·
Rain的Java大神之路9 小时前
短信接口被狂刷怎么处理
java·运维·后端·web安全·面试·架构·xss
孙克旭_9 小时前
Docker 镜像构建|Vue+SpringBoot+Go 多语言项目 Dockerfile 案例
linux·运维·vue.js·spring boot·docker·dockerfile
2602_959960929 小时前
谢飞机面试大厂:Spring Boot、JVM、Redis、Kafka、微服务与音视频搜索场景求生实录
java·jvm·spring boot·redis·面试题
Lost of 程序猿9 小时前
AOP 实战:面向切面编程从理论到落地
后端·asp.net·aop·面向切片变成
Lost of 程序猿10 小时前
ASP.NET Core 认证授权实战:从 JWT 到 Policy,设计一套企业级 RBAC 权限系统
后端·asp.net
Lost of 程序猿10 小时前
ASP.NET Core 后台任务全景:从 BackgroundService 到 Channel 队列,再到分布式调度
后端·asp.net·.netcore
倾颜10 小时前
NestJS 核心概念梳理:从 Module、Controller 到 Guard、Interceptor
后端·node.js·nestjs