springboot导出csv
时间: 2023-11-05 21:02:12 浏览: 93
1. 添加依赖
在 pom.xml 中添加以下依赖:
```xml
<dependency>
<groupId>com.opencsv</groupId>
<artifactId>opencsv</artifactId>
<version>5.5.2</version>
</dependency>
```
2. 编写导出方法
在 Controller 中编写导出方法:
```java
@GetMapping("/export")
public void export(HttpServletResponse response) throws IOException {
// 设置响应头
response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=data.csv");
response.setContentType("text/csv");
// 获取数据
List<User> userList = userService.getAllUsers();
// 创建 CSVWriter
CSVWriter csvWriter = new CSVWriter(new OutputStreamWriter(response.getOutputStream(), "UTF-8"),
CSVWriter.DEFAULT_SEPARATOR, CSVWriter.NO_QUOTE_CHARACTER, CSVWriter.DEFAULT_ESCAPE_CHARACTER,
CSVWriter.DEFAULT_LINE_END);
// 写入标题行
csvWriter.writeNext(new String[] {"ID", "姓名", "年龄", "性别"});
// 写入数据行
for (User user : userList) {
csvWriter.writeNext(new String[] {user.getId().toString(), user.getName(), user.getAge().toString(),
user.getGender()});
}
// 关闭 CSVWriter
csvWriter.close();
}
```
3. 测试导出
启动应用,访问导出接口(例如:http://localhost:8080/export),会自动下载名为 data.csv 的文件,打开文件可以看到导出的数据。
注意事项:
- CSVWriter 默认使用 UTF-8 编码,所以需要在 response 中设置字符编码为 UTF-8。
- CSVWriter 的构造函数中,第一个参数是 OutputStreamWriter,需要传入 response 的输出流。
- CSVWriter 的写入方法需要传入一个字符串数组,每个元素对应一列数据。
阅读全文