[COM] Excel Application (Objet COM) + PHP
Bonjour,
Je souhaite mettre en place un trie sur un classeur Excel sur des index contenus dans une colonne du fichier.
Mon fichier est généré à partir d'une base SQL Server et d'un script PHP, car l'utilisateur pour créer son fichier doit renseigner plusieurs critères à travers un formulaire.
Maintenant, je souhaiterai savoir si à partir de l'objet COM (Excel Application), nous pouvons effectuer des opérations de tris, de copies de valeurs; des opérations qui sont disponibles avec Excel.
Un exemple de code PHP utilisant l'objet COM, ce code génère un fichier excel et écrit dans ce même fichier dans des cellules sélectionnées :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
<?php
define("FILENAME","C:/tests.xls");
if(file_exists(FILENAME))
{
unlink(FILENAME);
}
$excel=new COM("Excel.application");//Instanciation de l'objet COM
$excel->sheetsinnewworkbook=1;//Une seule feuille dans le document
$excel->Workbooks->Add();//Ajout d'un classeur
$book=$excel->Workbooks(1);//$book contient le classeur actif
$sheet=$book->Worksheets(1);//$sheet contient la feuille active
$sheet->Name="Graphique";//Attribution d'un nom à la feuille
$cell=$sheet->Range('A1');
$cell->value='Personne'; //Titre de mes colonnes
$cell=$sheet->Range('B1');
$cell->value='Nombre Questions'; //Nombre de questions qu'on a posées
for ($i=2;$i<7;$i++)
{
$cell=$sheet->Range('A'.$i);
$cell->value='Zéro'.($i-1); // Zéros2 jusquà Zéros6
$cell=$sheet->Range('B'.$i);
$cell->value=2*$i; // de 4 à 12 questions
}
$book->saveas(FILENAME);//Enregistrement du document
unset($sheet);//Libération de $sheet
unset($book);//Libération de $book
$excel->Workbooks->Close();//Fermeture du classeur
$excel->Quit();//On quitte Excel
unset($excel);//Libération de l'objet $excel
?> |
Ainsi j'aurai voulu savoir, si à partir de ce code la on pouvait ajouter des fonctions disponibles en VBA, du type :
Code:
1 2
|
Selection.Sort Key1:=Range("G2"), Order1:=xlDescending, Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom |
Merci pour vos réponses !
Cordialement