Export JTable vers "Excel" avec caractères accentués
Bonjour,
J'ai un problème d'export lorsque j'utilise le contenu d'une jtable vers un fichier excel
le probleme est que les caractères accentués ne s'affiche pas correctement. J'ai essayé avec :
le BOM en début de fichier et System.setProperty( "file.encoding", "65001:Unicode UTF-8" );
mais rien n'est fait. Je bloque dessus depuis un moment merci pour votre aide.
voici le code que j'utilise:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| public void exporter(JTable table, File file){
try
{
TableModel model = table.getModel();
System.setProperty( "file.encoding", "65001:Unicode UTF-8" );
System.out.println(System.getProperty("file.encoding"));
FileWriter out = new FileWriter(file);
for(int i=0; i < model.getColumnCount(); i++) {
out.write(model.getColumnName(i) + "\t");
}
out.write("\n");
for(int i=0; i< model.getRowCount(); i++) {
for(int j=0; j < model.getColumnCount(); j++) {
out.write(model.getValueAt(i,j).toString()+"\t");
}
out.write("\n");
}
out.close();
Desktop.getDesktop().open(file);
}
catch(Exception err){
err.printStackTrace();
}
} |
essaye ce code pour moi ça marche très bien !
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| public void exporter(JTable table, File file){
try {
TableModel model = table.getModel();
FileOutputStream fos = new FileOutputStream(file.getName());
Writer out = new OutputStreamWriter(fos, "UTF-32");
for(int i=0; i < model.getColumnCount(); i++) {
out.write(model.getColumnName(i) + "\t");
}
out.write("\n");
for(int i=0; i< model.getRowCount(); i++) {
for(int j=0; j < model.getColumnCount(); j++) {
out.write(model.getValueAt(i,j).toString()+"\t");
}
out.write("\n");
}
out.close();
Desktop.getDesktop().open(file);
}
catch (IOException e) {
e.printStackTrace();
}
} |