[PHP] excel 2007 copier coller

Résolu
croluc Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   -  
croluc Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   -
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 11966 Date d'inscription   Statut Contributeur Dernière intervention   2 594
 
Le document de destination, il est bien au format *.xlsx ?
1
croluc Messages postés 10 Date d'inscription   Statut Membre Dernière intervention  
 
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 11966 Date d'inscription   Statut Contributeur Dernière intervention   2 594
 
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   Statut Membre Dernière intervention  
 
merci, bon courage à vous aussi :' )
0