Spring boot 如何在RESTAPI中将数据列表导出到csv文件
我正在将用户记录列表导出到sprig引导REST应用程序中的csv文件。我正在为此使用supercsv maven依赖项。我的User&Address实体类如下所示Spring boot 如何在RESTAPI中将数据列表导出到csv文件,spring-boot,supercsv,Spring Boot,Supercsv,我正在将用户记录列表导出到sprig引导REST应用程序中的csv文件。我正在为此使用supercsv maven依赖项。我的User&Address实体类如下所示 @GetMapping("/exportCsv") public ResponseEntity<?> exportCsv(HttpServletResponse response) { try { List<User> userList = getUserList(); Str
@GetMapping("/exportCsv")
public ResponseEntity<?> exportCsv(HttpServletResponse response) {
try {
List<User> userList = getUserList();
String csvFileName = "users.csv";
response.setContentType("text/csv");
// creates mock data
String headerKey = "Content-Disposition";
String headerValue = String.format("attachment; filename=\"%s\"",
csvFileName);
response.setHeader(headerKey, headerValue);
// write to csv file //
ICsvBeanWriter csvWriter = new CsvBeanWriter(response.getWriter(),
CsvPreference.STANDARD_PREFERENCE);
String[] user_headings = { "Name", "Age", "Salary" };
String[] pojoclassPropertyName = { "name", "age", "salary"
};
csvWriter.writeHeader(account_headings);
if(null!=userList && !userList.isEmpty()){
for (User user : userList) {
csvWriter.write(user, pojoclassPropertyName);
}
}
csvWriter.close();
}catch(Exception e) {
e.printStackTrace();
}
return new ResponseEntity<>("successfully export to csv ",HttpStatus.OK);
使用者
我的主控制器类如下所示
@GetMapping("/exportCsv")
public ResponseEntity<?> exportCsv(HttpServletResponse response) {
try {
List<User> userList = getUserList();
String csvFileName = "users.csv";
response.setContentType("text/csv");
// creates mock data
String headerKey = "Content-Disposition";
String headerValue = String.format("attachment; filename=\"%s\"",
csvFileName);
response.setHeader(headerKey, headerValue);
// write to csv file //
ICsvBeanWriter csvWriter = new CsvBeanWriter(response.getWriter(),
CsvPreference.STANDARD_PREFERENCE);
String[] user_headings = { "Name", "Age", "Salary" };
String[] pojoclassPropertyName = { "name", "age", "salary"
};
csvWriter.writeHeader(account_headings);
if(null!=userList && !userList.isEmpty()){
for (User user : userList) {
csvWriter.write(user, pojoclassPropertyName);
}
}
csvWriter.close();
}catch(Exception e) {
e.printStackTrace();
}
return new ResponseEntity<>("successfully export to csv ",HttpStatus.OK);
@GetMapping(“/exportCsv”)
公共响应导出CSV(HttpServletResponse){
试一试{
List userList=getUserList();
字符串csvFileName=“users.csv”;
response.setContentType(“text/csv”);
//创建模拟数据
字符串headerKey=“内容处置”;
String headerValue=String.format(“附件;文件名=\%s\”,
csvFileName);
response.setHeader(headerKey,headerValue);
//写入csv文件//
ICsvBeanWriter csvWriter=新的CsvBeanWriter(response.getWriter(),
CSVP(参考。标准优先);
字符串[]用户标题={“姓名”、“年龄”、“工资”};
字符串[]pojoclassPropertyName={“姓名”、“年龄”、“薪水”
};
csvWriter.书面负责人(账户标题);
if(null!=userList&!userList.isEmpty()){
for(用户:userList){
写入(用户,pojoclassPropertyName);
}
}
csvWriter.close();
}捕获(例外e){
e、 printStackTrace();
}
返回新的响应属性(“成功导出到csv”,HttpStatus.OK);
有了这些数据,我可以将用户名年龄工资数据导出到csv文件中。但是,我如何在上面提到的用户标题数组和相应的pojoclassPropertyName数组中传递地址的标题,以便我可以将所有用户和用户地址数据导出到我的csv文件中。请向我推荐任何工作示例。您的用户类定义没有完全包括在内…很抱歉,我已经更新了这个问题
@GetMapping("/exportCsv")
public ResponseEntity<?> exportCsv(HttpServletResponse response) {
try {
List<User> userList = getUserList();
String csvFileName = "users.csv";
response.setContentType("text/csv");
// creates mock data
String headerKey = "Content-Disposition";
String headerValue = String.format("attachment; filename=\"%s\"",
csvFileName);
response.setHeader(headerKey, headerValue);
// write to csv file //
ICsvBeanWriter csvWriter = new CsvBeanWriter(response.getWriter(),
CsvPreference.STANDARD_PREFERENCE);
String[] user_headings = { "Name", "Age", "Salary" };
String[] pojoclassPropertyName = { "name", "age", "salary"
};
csvWriter.writeHeader(account_headings);
if(null!=userList && !userList.isEmpty()){
for (User user : userList) {
csvWriter.write(user, pojoclassPropertyName);
}
}
csvWriter.close();
}catch(Exception e) {
e.printStackTrace();
}
return new ResponseEntity<>("successfully export to csv ",HttpStatus.OK);