[PHP] excel 2007 copier coller

Résolu/Fermé
croluc Messages postés 10 Date d'inscription mercredi 9 novembre 2011 Statut Membre Dernière intervention 23 février 2012 - 23 févr. 2012 à 14:22
croluc Messages postés 10 Date d'inscription mercredi 9 novembre 2011 Statut Membre Dernière intervention 23 février 2012 - 23 févr. 2012 à 14:43
Bonjour,
Je ne poste pas souvent, mais la c'est un cas de légitime postage ^^

Mon objectif est le suivant, faire un copier collé de 65536 lignes d'un document csv vers un document xls.

Pas de problème pour faire le copier collé, le soucis c'est la taille de ce copié collé :
Le document de destination une fois ouvert se comporte comme si il avait 16384 lignes.

voici mon code source :

<?php

//répertoir de travail
$path = "d:\wamp\www\excel\\";
$excel = new COM("excel.application") or die("Unable to instanciate excel");
$excel->DisplayAlerts = 0;

//fichier contenant les données à copier
$wkb = $excel->Workbooks->Open($path.'ecriture.csv');

//gabari sur lequel seront collé les données du premier fichier
$wkb2 = $excel->Workbooks->Open($path.'gab.xlsx');

//création des feuilles de travail
$sheet2=$wkb2->Worksheets(1);
$sheet=$wkb->Worksheets(1);

//activation de la feuille de travail et copie des données
$sheet->activate;
$sheet->Range("A1:AA65536")->Copy;

//activation de la seconde feuille et collage des données
$sheet2->activate;
$cell = $sheet2->Cells(1,1);
$cell->Activate;
$sheet2->Paste;

//sauvegarde du fichier en sortie
$strPath = $path.'tfile'.date("Ymd").'_test.xls';
if (file_exists($strPath)) {unlink($strPath);}
$wkb2->SaveAs($strPath,39);

//fermeture d'excel
$wkb->Close(false);
$wkb2->Close(false);
$excel->Workbooks->Close();
unset($sheet);
unset($sheet2);
$excel->Quit();
$excel = null;
unset($excel);
?>
Si quelqu'un a une idée pour faire en sorte que le copier collé fonctionne sur l'intégralité des 65536 lignes je suis preneur.
Merci à tous.
Croluc
A voir également:

2 réponses

Bruce Willix Messages postés 11968 Date d'inscription mardi 24 mai 2011 Statut Contributeur Dernière intervention 12 juin 2018 2 587
23 févr. 2012 à 14:26
Le document de destination, il est bien au format *.xlsx ?
1
croluc Messages postés 10 Date d'inscription mercredi 9 novembre 2011 Statut Membre Dernière intervention 23 février 2012
23 févr. 2012 à 14:33
Merci Bruce willix, je me déteste -_-

cette ligne est la responsable.
$wkb2->SaveAs($strPath,39);

je dois en faite utiliser :
$wkb2->SaveAs($strPath,56);

39 est compatible excel 5 et excel 7

https://docs.microsoft.com/en-us/previous-versions/office/developer/office-2007/bb241279(v=office.12)?redirectedfrom=MSDN

Désolé pour cette question, merci encore.
Croluc
0
Bruce Willix Messages postés 11968 Date d'inscription mardi 24 mai 2011 Statut Contributeur Dernière intervention 12 juin 2018 2 587
23 févr. 2012 à 14:35
Meuh non, on est justement pile poil dans ce à quoi sert le forum: à s'entraider :-)

Courage pour la suite !
0
croluc Messages postés 10 Date d'inscription mercredi 9 novembre 2011 Statut Membre Dernière intervention 23 février 2012
23 févr. 2012 à 14:43
merci, bon courage à vous aussi :' )
0