Я экспортирую список пользовательских записей в csv-файл в моем REST-приложении sprig boot.Я использую Supercsv Maven зависимость для этого.Мой класс сущности для User & Address выглядит следующим образом.
User
Class User{
private String userId;
private String name;
private int age;
private double salary;
private List<Address> addresses;
}
Address
class Address{
private String id;
private String city;
private String street;
private String country;
}
enter code here
А мой основной класс контроллера выглядит следующим образом.
@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);
с этими данными я могу экспортировать данные о зарплате по имени пользователя в CSV-файл.но как я мог передать заголовок для адреса в массиве user_headings и соответствующем массиве pojoclassPropertyName, упомянутом выше, чтобы я мог экспортировать все данные об адресе пользователя и пользователя в мой CSV-файл.пожалуйста, предложите мне с любым рабочим примером.