SpringBoot项目Mysql查询结果导出Excel文件
时间: 2024-02-21 07:59:05 浏览: 134
可以使用 Apache POI 库实现将 MySQL 查询结果导出到 Excel 文件中。下面是一个简单的示例代码:
1. 添加 Maven 依赖
```xml
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.2</version>
</dependency>
```
2. 创建 Excel 文件并写入数据
```java
// 创建工作簿
Workbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Sheet1");
// 执行查询并获取结果集
List<Object[]> resultList = jdbcTemplate.query(sql, args, new BeanPropertyRowMapper<>(clazz));
// 写入表头
Row headerRow = sheet.createRow(0);
for (int i = 0; i < headers.length; i++) {
Cell cell = headerRow.createCell(i);
cell.setCellValue(headers[i]);
}
// 写入数据
int rowIndex = 1;
for (Object[] row : resultList) {
Row dataRow = sheet.createRow(rowIndex++);
for (int i = 0; i < row.length; i++) {
Cell cell = dataRow.createCell(i);
cell.setCellValue(row[i].toString());
}
}
// 输出 Excel 文件
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
response.setHeader("Content-disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));
workbook.write(response.getOutputStream());
```
其中,`jdbcTemplate` 是 Spring 提供的 JDBC 操作工具类,`sql` 是要执行的 SQL 语句,`args` 是 SQL 语句中的参数,`clazz` 是查询结果对应的实体类,`headers` 是表头数组,`fileName` 是导出的 Excel 文件名,`response` 是 HttpServletResponse 对象。
以上代码将查询结果写入 Excel 文件并直接输出到浏览器。你可以根据实际需求自行修改。
阅读全文