Copier le contenu d'un fichier excel vers un autre

Signaler
Messages postés
12
Date d'inscription
mercredi 12 mars 2008
Statut
Membre
Dernière intervention
1 mai 2009
-
Messages postés
9
Date d'inscription
jeudi 23 avril 2009
Statut
Membre
Dernière intervention
17 mai 2009
-
bonjour,
je travail avec J EXCEL API


Je cherche à copier un fichier EXCEL template vers un nouveau fichier que je vais créer ensuite faire des modification sur celui la et le souvgardé.
je veux effectué les étapes  suivantes:
1) récupèrer mon fichier template
2)  créer le nouveau fichier
3)copier le fichier template vers le nouveau fichier
4)récuperer les SHEET du nouveau fichier(qui normalemet sont les memes que celle du fichier template) et ensuite écrire desous
voila ce que j'ai essayé de faire
   File projectRealPath=new File(request.getSession().getServletContext().getRealPath("."));


Workbook workbook = Workbook.getWorkbook (new File(projectRealPath,"bon/ready.xls"));


WritableWorkbook classeur = Workbook.createWorkbook (new File ( "readymodif.xls")); 


classeur.copy(workbook);


classeur.write();  
classeur.close(); 

mais dans la commande"classeur.copy(workbook);" le mot "copy" est barré
en plus y'a le message d'erreur suivant:
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
 java.util.ArrayList.RangeCheck(Unknown Source)
 java.util.ArrayList.get(Unknown Source)
 jxl.write.biff.WritableWorkbookImpl.getSheet(WritableWorkbookImpl.java:399)
 jxl.write.biff.WritableWorkbookImpl.write(WritableWorkbookImpl.java:767)

signalant une erreur devant la ligne"classeur.write(); "
et quand j'ai ajouté ça à mon code
WritableSheet sheet = classeur.createSheet("First Sheet", 0);

il m'ouvre le nouveau fichier mais vide
est ce que qlq'un peux m'aider??
merci
A voir également:

6 réponses

Messages postés
744
Date d'inscription
dimanche 1 avril 2007
Statut
Membre
Dernière intervention
9 mai 2010
7
Salut, j'ai regardé que très rapidement ton post.

Si la méthode est barré, ça veut dire qu'elle est deprecated ce qui veut que les développeurs déconseillent d'utiliser cette méthode (la preuve ça crashe).

Regarde la Javadoc de cette API, il doit y avoir la méthode remplaçante à "copy"...

<hr width="100%" size="2" />
 C'est après des heures de codage que j'ai compris pourquoi les créateurs de Java ont choisi une tasse de café comme logo...
Messages postés
12
Date d'inscription
mercredi 12 mars 2008
Statut
Membre
Dernière intervention
1 mai 2009

oui c'est vrai
j'ai  fais ça et ça marche :

Workbook workbook = Workbook. getWorkbook (

new File(projectRealPath,
"bon/ready.xls"));

WritableWorkbook copy = Workbook.createWorkbook(

new File(
"ReadyDistribution.xls"), workbook);
//copie du fichier source

merci d'avoir lu mon post
Messages postés
9
Date d'inscription
jeudi 23 avril 2009
Statut
Membre
Dernière intervention
17 mai 2009

j'ai essayé votre code mais il me souligne get.session
je veux copier 3 fichiers excel dans un seul fichier chaque fichier d'entrée dans une sheet
ça fait longtemps bloqué sans trouver la solution
est ce que vous pouvez m'aider?
je vous remercie
Messages postés
12
Date d'inscription
mercredi 12 mars 2008
Statut
Membre
Dernière intervention
1 mai 2009

bon moi  je developpe un projet web avec le frame work struts
la partie suivante de mon code


<hr />

 File projectRealPath= new File(request.getSession().getServletContext().getRealPath("."));
<hr />
je la fait pour récuperer le chemin relatif de mon projet 
ensuite je récupère le fichier "ready.xls" qui se trouve dans le dossier "bon"
<hr />
Workbook workbook = Workbook. getWorkbook ( new File(projectRealPath,
"bon/ready.xls"));
<hr />

et tous sa pour ne pas indiquer le chemin comlpet du fichier que je veux copier mais toi tu  écrire le chemin complet de ton fichier

<hr />// tu met chaque fichier dans un workbook   et tu récupère le sheet
Workbook workbook1 = Workbook.getWorkbook (

new File(
"C/......../fichier1.xls"));Sheet sheet1= workbook1.getSheet(0);

Workbook workbook2 = Workbook. getWorkbook   ( new


File(
"C/........./fichier2.xls"));
Sheet sheet2 =workbook2.getSheet(0);

Workbook workbook3 = Workbook. getWorkbook   ( new


File(
"C/........./fichier3.xls"));

Sheet sheet3 =workbook3.getSheet(0);

//tu crée ton workbook

WritableWorkbook classeur = Workbook. createWorkbook (

new File (
"fichiercrée.xls"));

// et tu écrit chaque sheet récupéré dans une sheet de ton workbook

WritableSheet sheet4 = classeur.importSheet(

"1 Sheet", 0, sheet1);WritableSheet sheet5 = classeur.importSheet(

"2 Sheet", 1, sheet2);WritableSheet sheet6 = classeur.importSheet(

"3 Sheet", 2, sheet3);

classeur.write(); 
classeur.close();

j'éspère que cette solution va t'aider
n'oublie pas de me le dire
@+
Messages postés
9
Date d'inscription
jeudi 23 avril 2009
Statut
Membre
Dernière intervention
17 mai 2009

Je vous remercie beaucoup pour la répense
je ne comprend pas pourquoi il me barre le write  et le  close dans les deux dernières instructions:
classeur.write(); 

classeur.close();
 en m'indiquant ce message lorsque je clique au croix rouge:
syntax error on token "write", identifier expected after this token
Messages postés
9
Date d'inscription
jeudi 23 avril 2009
Statut
Membre
Dernière intervention
17 mai 2009

J'ai corrigé cette erreur et le programme s'exécute sans exception il y a création du classeur avec trois sheets (1 sheet , 2 sheet, 3 sheet) mais ils sont vides je ne trouve pas dedans le contenu des 3 fichiers que je veut les rassembler.
Quel est le problème?