Spring boot 如何在RESTAPI中将数据列表导出到csv文件

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

我正在将用户记录列表导出到sprig引导REST应用程序中的csv文件。我正在为此使用supercsv maven依赖项。我的User&Address实体类如下所示

@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);