Forum Clubic

Modifier un fichier excel avec jxl

Salut à tous!
Est ce que quelqu’un sait comment modifier un fichier excel en java?
Mon pb est le suivant:
j’utilise l’api jexecel.
J’ai un fichier Excel et je souhaiterais ajouter les données de l’utilisateur les uns à la suite des autres lorsqu’il clique sur un bouton.
le problème est que à chaque clic le contenu du fichier est effacé, le programme remet le fichier à zéro.
Est ce qu’il existe une methode de création de fichier en mode ajout en utilisant workbook?
Please help me!
je galère depuis 3 jours.
Cordialement
Teesha.

Sans connaître l’API, je dirais: en lisant d’abord le fichier, puis en le créant avec le fichier existant?

Mon pb n’est pas comment lire ou écrire dans un fichier excel, mais comment le modifier à chaque clique de l’utilisateur dans mon programme principal.
A chaque appel de la methode actionPerformed, le programme devrait ajouter les infos sélectionnés par l’utilisateur à la fin du fichier.
Le fonctionnement normal devra etre le suivant:
au premier appel de actionPerformed, le prog devrait
créer un fichier excel vierge,
écrire les élts sélectionnés dans le fichier,

au 2ème appel ,
le fichier existe déja donc inutile de le créer , il faut rajouter les infos sélectionner dedans.

Je précise que la méthode actionPerformed est appelée plusieurs fois.

Mon pb est que au 1er appel, le fichier est crées et les données sont copiés nickel mais au 2ème appel, le prog écrit les données sélectionnées en effacant les précédentes.

Ce serait sympa si vous me proposer une petite solution.
J’espère avoir été explicite.

Merci beaucoup d’avance!

y’a pas un mode ‘rajout’ a ta fonction d’écritre?

(comparaison au langage C avec le mode “R+”)

c bon j’ai trouvé la solution!

if (!fsource.exists()) //si le fichier existe
{
WritableWorkbook source = Workbook.createWorkbook(fsource);
WritableSheet sheet1=source.createSheet(“test”,0);
//traitement

 source.write();
 source.close();
}

else
{
Workbook source=Workbook.getWorkbook(fsource);
File fcopy=new File(“output.xls”);
copy = Workbook.createWorkbook(fcopy, source); //on fait une copy du workbook source
WritableSheet sheet1 = copy.getSheet(0);
//traitement
copy.write();
copy.close();
fsource.delete(); //on supprime l’original et on garde la copie
File f=new File(“current.xls”);
fcopy.renameTo(f); //on renomme la copie avec le nom du fichier original

A ma connaissance, il n’existe pas de méthode pour ouvrir un fichier excel en mode ajout, il faut faire une copy.
www.andykhan.com…

N’oublie pas de faire ton action dans une thread, en désactivant le bouton, ça m’a l’air bien lourd de relire, puis réécrire.

Tu es sûr que tu ne peux pas travailler avec ton objet Excell, puis l’écrire occasionnellement? En gros : tu maintiens une vue en mémoire de ton fichier Excell, avec ton API (y a sûrement ce qu’il faut), que tu peux modifier (à mon avis, sauf à être fou, ça m’étonnerait que tu ne puisse pas travailler en mode ajout).