springboot 导出excel 接口
时间: 2023-10-12 22:10:42 浏览: 86
Spring Boot提供了许多方式来导出Excel,以下是一种常见的方式:
1. 添加依赖项
在 pom.xml 文件中添加以下依赖项:
```
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.2</version>
</dependency>
```
2. 创建 ExcelUtil 类
创建一个 ExcelUtil 类,该类负责将数据导出到 Excel 文件中。以下是一个简单的 ExcelUtil 类示例,该类使用 Apache POI 库来创建 Excel 文件:
```
public class ExcelUtil {
public static void writeExcel(HttpServletResponse response, List<Object[]> dataList) throws IOException {
// 创建工作簿
XSSFWorkbook workbook = new XSSFWorkbook();
// 创建工作表
XSSFSheet sheet = workbook.createSheet("Sheet1");
int rowNum = 0;
// 添加表头
Row headerRow = sheet.createRow(rowNum++);
headerRow.createCell(0).setCellValue("Name");
headerRow.createCell(1).setCellValue("Age");
// 添加数据
for (Object[] data : dataList) {
Row row = sheet.createRow(rowNum++);
row.createCell(0).setCellValue(String.valueOf(data[0]));
row.createCell(1).setCellValue(Integer.parseInt(String.valueOf(data[1])));
}
// 设置响应头和文件名
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-disposition", "attachment;filename=data.xlsx");
// 将 Excel 文件写入响应输出流
workbook.write(response.getOutputStream());
workbook.close();
}
}
```
3. 创建 Controller 类
创建一个 Controller 类,该类负责将 Excel 文件作为响应发送给客户端。
```
@RestController
@RequestMapping("/api")
public class ExcelController {
@GetMapping("/export")
public void exportExcel(HttpServletResponse response) throws IOException {
// 查询数据
List<Object[]> dataList = new ArrayList<>();
dataList.add(new Object[]{"Tom", 20});
dataList.add(new Object[]{"Jerry", 22});
// 导出 Excel 文件
ExcelUtil.writeExcel(response, dataList);
}
}
```
在该示例中,我们使用 @GetMapping 注解将 exportExcel 方法映射到 /api/export 路径上。当客户端访问该路径时,将调用该方法,并将Excel文件作为响应发送给客户端。
4. 测试
启动 Spring Boot 应用程序并访问 http://localhost:8080/api/export,将会下载一个名为 data.xlsx 的 Excel 文件。
以上就是一个简单的 Spring Boot 导出 Excel 的示例。你可以根据自己的需求进行修改和扩展。
阅读全文