Spring Boot 控制器导出 Excel

作者:编程家 分类: spring 时间:2025-11-23

使用Spring Boot框架可以方便地实现控制器导出Excel功能。本文将介绍如何 ,并添加案例代码来说明这个功能的具体实现过程。

Spring Boot控制器导出Excel

在实际开发中,经常会遇到需要将数据导出为Excel的需求,例如导出用户列表、订单信息等。Spring Boot框架提供了很多便捷的功能,可以帮助我们快速实现这个功能。

在开始之前,我们需要先导入相关的依赖。在pom.xml文件中添加以下依赖:

xml

org.apache.poi

poi

4.1.2

org.apache.poi

poi-ooxml

4.1.2

接下来,我们可以创建一个控制器来实现导出Excel的功能。在这个控制器中,我们需要使用Apache POI库来生成Excel文件,并提供一个接口供前端调用。

java

import org.apache.poi.ss.usermodel.*;

import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import org.springframework.web.bind.annotation.GetMapping;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpServletResponse;

import java.io.IOException;

@RestController

@RequestMapping("/excel")

public class ExcelController {

@GetMapping("/export")

public void exportExcel(HttpServletResponse response) throws IOException {

// 创建Excel工作簿

Workbook workbook = new XSSFWorkbook();

// 创建一个工作表

Sheet sheet = workbook.createSheet("用户列表");

// 创建表头

Row headerRow = sheet.createRow(0);

Cell headerCell = headerRow.createCell(0);

headerCell.setCellValue("姓名");

// 填充数据

Row dataRow = sheet.createRow(1);

Cell dataCell = dataRow.createCell(0);

dataCell.setCellValue("张三");

// 设置响应头信息

response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");

response.setHeader("Content-Disposition", "attachment; filename=userList.xlsx");

// 将Excel写入响应流

workbook.write(response.getOutputStream());

// 关闭工作簿

workbook.close();

}

}

在上述代码中,我们首先创建了一个Excel工作簿和一个工作表。然后,我们创建了表头和数据行,并填充了一些示例数据。接着,我们设置了响应头信息,告诉浏览器要下载的文件类型和文件名。最后,将Excel文件写入响应流中,并关闭工作簿。

通过访问`/excel/export`接口,就可以实现导出Excel文件的功能了。浏览器会自动下载一个名为`userList.xlsx`的Excel文件,其中包含了一个名为"用户列表"的工作表,以及一个姓名为"张三"的数据。

通过本文的介绍,我们了解了如何使用Spring Boot框架实现控制器导出Excel的功能。通过Apache POI库,我们可以方便地生成Excel文件,并通过设置响应头信息将文件写入响应流中。这样,我们就可以实现将数据导出为Excel的需求了。

希望本文对你有所帮助,如果有任何疑问或建议,请留言给我。谢谢阅读!