--Je souhaite ajouter des citations uniquement à des colonnes spécifiques de CSV ――Après quelques recherches, je n'ai pu ajouter ou ne pas ajouter de guillemets à toutes les colonnes de type String.
--Définissez tous les types de chaîne pour avoir des guillemets
@ JsonRawValue
aux colonnes que vous ne voulez pas ajouter de guillemetsSampleController.java
@RestController
public class SampleController {
@GetMapping(value="/sample.csv", produces="text/csv;charset=utf-8;Content-Disposition:attachment")
public String csv() throws JsonProcessingException {
List<UserBean> rows = new ArrayList<UserBean>() {
{
add(new UserBean("ozaki", "runners", 27));
}
};
CsvMapper mapper = new CsvMapper();
//Si vous ajoutez avec Header, un en-tête sera ajouté à la première ligne.
CsvSchema schema = mapper.schemaFor(UserBean.class).withHeader();
// ALWAYS_QUOTE_Si STRINGS est utilisé, les colonnes de type String auront des guillemets.
mapper.configure(CsvGenerator.Feature.ALWAYS_QUOTE_STRINGS, true);
return mapper.writer(schema).writeValueAsString(rows);
}
}
UserBean.java
//Définir l'ordre des colonnes CSV
@JsonPropertyOrder({"name", "team", "age"})
public class UserBean {
private String name;
//Quart ne fonctionne pas avec JsonRawValue
@JsonRawValue
private String team;
private Integer age;
public UserBean(String name, String team, Integer age) {
this.name = name;
this.team = team;
this.age = age;
}
/* setter/getter */
sample.csv
"name","team","age"
"ozaki",runners,27
Recommended Posts