java 后端查询数据后批量写入导出excel
时间: 2024-09-21 19:02:21 浏览: 65
Spring框架实现Excel批量导入数据
在Java中,后端处理数据并批量写入Excel文件通常涉及以下几个步骤:
1. **导入依赖**:
首先,你需要添加Apache POI库,它是Java处理Microsoft Office文档的标准库,包括XSSFWorkbook(用于创建Excel工作簿)和XSSFSheet(代表一个工作表)。
```java
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
```
2. **准备数据模型**:
定义一个数据模型类(如`User`),它应该包含所有需要写入Excel的数据属性。
```java
public class User {
private String name;
private int age;
// 其他字段...
}
```
3. **创建工作簿和工作表**:
创建一个新的`XSSFWorkbook`实例来表示Excel文件,并创建一个工作表。
```java
Workbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("用户列表");
```
4. **遍历数据并将数据写入单元格**:
使用`sheet.createRow()`方法创建行,然后用`setCellValue()`方法写入每个单元格。
```java
List<User> users = ... // 查询数据库的结果
for (User user : users) {
Row row = sheet.createRow(sheet.getLastRowNum() + 1);
row.createCell(0).setCellValue(user.getName());
row.createCell(1).setCellValue(user.getAge());
// 写入其他字段
}
```
5. **保存文件**:
使用`workbook.write()`方法将内容写入磁盘,然后关闭文件。
```java
try (OutputStream outputStream = response.getOutputStream()) {
workbook.write(outputStream);
} finally {
workbook.close();
}
```
6. **设置响应头**:
设置HTTP响应头,指定文件类型为Excel(`.xls`或`.xlsx`),以便浏览器能识别并下载。
```java
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-Disposition", "attachment; filename=users.xlsx");
```
阅读全文