Dupliquer une feuille Excel

sschupp Messages postés 63 Date d'inscription mardi 3 juin 2003 Statut Membre Dernière intervention 18 mai 2006 - 5 oct. 2005 à 11:05
sschupp Messages postés 63 Date d'inscription mardi 3 juin 2003 Statut Membre Dernière intervention 18 mai 2006 - 6 oct. 2005 à 11:06
Bonjour,



J'aimerais dupliquer une feuille dans un fichier Excel.



J'utilise pour le moment un objet de la classe COM pour gérer mon
fichier Excel, mais je n'ai pas vu de fonctions pour dupliquer une
feuille Excel.



Quelqu'un a-t-il déjà planché sur ce sujet ?


Ar Breizh Marsu

4 réponses

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
5 oct. 2005 à 11:24
Hello,



un objet COM ne fait que lancer l'application COM qui va bien, non ?
Donc ça regarde Excel, dans ce cadre, la duplication d'une feuille.

Après, ça dépend ce que tu entends par duplication...
sschupp Messages postés 63 Date d'inscription mardi 3 juin 2003 Statut Membre Dernière intervention 18 mai 2006
5 oct. 2005 à 11:39
Par dupliquer, j'entend copier une feuille et son
contenu dans une nouvelle feuille. Cela comprend le contenu et la mise
en forme de chaque cellule. Voire mieux, d'une plage donnée (car on
utilise rarement les 64000 colonnes tout de même, donc si on peut
accéler le traitement...).



Après, pour l'objet COM, il a des fonctions attribués, donc pourquoi pas une fonction "Duplicate" (, elle n'existe pas !).


Ar Breizh Marsu
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
5 oct. 2005 à 11:50
regarde la POO php, tu verras qu'il y a moyen de cloner des objets :-) En tous cas, php5...php4, je ne me souviens plus.
sschupp Messages postés 63 Date d'inscription mardi 3 juin 2003 Statut Membre Dernière intervention 18 mai 2006
6 oct. 2005 à 11:06
La fonction clone marche à peu près comme ça (je suis en PHP5) :

$wsCible = clone($wsModele);

Où $wsModele est une feuille de mon classeur, et $wsCible son clone.



Pour ajouter une feuille, je fais comme ça :

$wsNew = $workgroup->Worksheets->add();

Où $workgroup est le classeur, qui contient aussi
$wsModele et $wsNew une nouvelle feuille. Pas de problême, je crée une
feuille vide.



Seulement je n'arrive pas à faire en sorte que $wsNew contiennent les informations de $wsCible.



J'ai bien essayé de faire une double boucle pour recopier les informations d'une feuille sur l'autre.

$maxLigne = 30;

$maxCol = 20;

for ($ligne=1;$ligne<$maxLigne;$ligne++) {

for ($col=1;$col<$maxCol;$col++) {

$cellCible = $wsCible->Cells($ligne,$col);

$celNew = $wsNew->Cells($ligne,$col);

$cellNew->value = $cellCible->value;

}

}



Je copie bien le contenu des cellules ($cellNew->value = $cellCible->value;), mais pas la mise en forme (couleur de fond, bordure de cellule).
Ces informations doivent exister quelque part, mais je n'ai pas trouvé
de liste des méthodes et propriétés d'un objet COM-Excel.



Quelqu'un aurait un lien a proposer ?


Ar Breizh Marsu
Rejoignez-nous