Copier le contenu d'un fichier excel vers un autre

info20072008 Messages postés 12 Date d'inscription mercredi 12 mars 2008 Statut Membre Dernière intervention 1 mai 2009 - 22 janv. 2009 à 12:12
souissi12 Messages postés 9 Date d'inscription jeudi 23 avril 2009 Statut Membre Dernière intervention 17 mai 2009 - 2 mai 2009 à 01:37
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

6 réponses

dvoraky Messages postés 744 Date d'inscription dimanche 1 avril 2007 Statut Membre Dernière intervention 9 mai 2010 8
22 janv. 2009 à 15:24
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...
0
info20072008 Messages postés 12 Date d'inscription mercredi 12 mars 2008 Statut Membre Dernière intervention 1 mai 2009
23 janv. 2009 à 12:54
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
0
souissi12 Messages postés 9 Date d'inscription jeudi 23 avril 2009 Statut Membre Dernière intervention 17 mai 2009
28 avril 2009 à 23:44
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
0
info20072008 Messages postés 12 Date d'inscription mercredi 12 mars 2008 Statut Membre Dernière intervention 1 mai 2009
1 mai 2009 à 19:02
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
@+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
souissi12 Messages postés 9 Date d'inscription jeudi 23 avril 2009 Statut Membre Dernière intervention 17 mai 2009
1 mai 2009 à 23:43
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
0
souissi12 Messages postés 9 Date d'inscription jeudi 23 avril 2009 Statut Membre Dernière intervention 17 mai 2009
2 mai 2009 à 01:37
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?
0
Rejoignez-nous