Ecriture dans un fichier texte (csv)
Bonjour !
J'ai une application java (web) qui permet de télécharger un fichier csv conrrespondant au tableau affiché.
Pour ce faire :
Code:
1 2 3 4 5 6 7 8
|
ByteArrayOutputStream baos = new ByteArrayOutputStream();
PrintWriter out = new PrintWriter(baos);
out.println("........");
...
...
out.flush();
out.close(); |
et dans l'action web (je sais pas si c'est utile que je détail ça, mais on sait jamais ... ):
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
ExternalContext external = FacesContext.getCurrentInstance()
.getExternalContext();
HttpServletResponse response = (HttpServletResponse) external
.getResponse();
// formatage de la réponse
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition",
"attachment;filename=\"list.csv\"");
// Ecriture dans l'output
ServletOutputStream out;
try {
out = response.getOutputStream();
baos.writeTo(out);
baos.flush();
FacesContext.getCurrentInstance().responseComplete();
} catch (IOException e) {
e.printStackTrace();
} |
Par ailleurs, le fichier est bien formé, lorsque je l'ouvre avec un éditeur de texte, genre notepad.
Lorsque je l'ouvre avec Excel, tous les accents sont remplacés par un code bizarre (ex : Quantité est nul)
Faut-il faire quelque chose dans le code java pour rétablir ces accents ?
Toutes les réponses sont les bienvenues :)
Merci beaucoup d'avance, je vous souhaite une bonne journée.