Enregistrer des données dans une fichier excel

rima -  
 rima -
Bonjour,
j'ai une table SWT qui est editable.Je voudrai enregistrer les données editées dans les cellules de la table par l'utilisateur dans un fichier excel.
j'ai besoin d'une idée pour faire ça.

merci d'avance.


A voir également:

2 réponses

ProvencaleLeGaulois Messages postés 48 Date d'inscription   Statut Membre Dernière intervention   6
 
Bonjour,

Le plus simple est de créer un fichier csv.
Tu crées un String au format csv :
[val11];[val12];[va13]
...

Et tu enregistres dans un fichier texte (nommé monFichier.csv).
Pour enregistrer un fichier texte (à partir d'une JTable dans mon exemple) :


public void makeCSV(String chemin, JTable table){
    File sortie = new File(chemin);
    BufferedWriter bw = new BufferedWriter(new FileWriter(sortie));
    String result="";
    int ligne,colonne;
    for(ligne=0;ligne<table.getRowCount();ligne++){
        for(colonne=0;colonne<table.getColumnCount()-1;colonne++){
            result=result+data[ligne][colonne]+";";
        }
        result=result+"\n";
    }    
    bw.write(result);
    bw.close();
}



Par contre si tu tiens à enregistrer au format xls ou xlsx il te faudra utiliser une API comme POI :
http://poi.apache.org/

A+
0
rima
 
Bonjour ,en fait je voudrai enregistrer la table avec les nouvelle données dans en format xlsx et j'ai essayé avec ce code mais le fichier ne peut être ouvert quand j'ai fais le run de code.

public void exporter(LinkedList<LinkedList<String>> table_modify, File file)
{
try
{
table_modify=MapModifyDataIntoTableSWT(table, file);
TableColumn[] columns = table.getColumns();

TableItem[] item = table.getItems();
FileWriter out = new FileWriter(file);

for (TableColumn column : columns) {
out.write(column.getText() + "\t");
}
out.write("\n");

for(int i=1; i< table.getItems().length; i++) {
for(int j=0; j < table.getColumnCount(); j++) {
out.write(table_modify.get(i).get(j).toString()+"\t");
}
out.write("\n");
}

out.close();

} catch(Exception err)
{
err.printStackTrace();
}
}
0