Bonjour,
Alors j'ai un gros problème que je dois résoudre le plus vite possible pour une raison de timing, je vous remercie donc à l'avance.
Vu le peu de documentation en la matière et mon manque de connaissance en programmation, je vous soumets donc le problème suivant:
Mon but est de copier un classeur d'un fichier xlsx vers un nouveau fichier que je crée dans ce code.
La dernière ligne est supposée copier ma page mais je ne vous cache pas que ca déconne complètement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 $excel=new COM("Excel.Application"); //Instanciation de l'objet COM $excel->sheetsinnewworkbook=2;//2 feuilles de calcul 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 1e feuille active $sheet2=$book->Worksheets(2);//$sheet contient la 2e feuille active $sheet->Name="sheetref";//Attribution d'un nom à la feuille $sheet2->Name="macro";//Attribution d'un nom à la feuille $file2 = $path."/reference.xlsx"; // Pour lire $Workbook2 = $excel->Workbooks->Open("$file2") or Die("Did not open $file2 $Workbook2"); $Worksheet = $Workbook2->Worksheets(1); $Worksheet->activate; //Copie d'une feuille à l'autre //$sheet2=$Worksheet; //$sheet2->Copy($Workbook2); $book->Worksheets(2)->Copy($Workbook2->Worksheets(1));
Au niveau des enregistrements ca déconne aussi, je ne sais pas quoi et comment fermer et sauver les classeurs et fichiers sans que des (nombreuses) demandes de confirmation ne me sautent aux yeux. De plus les applications tournent toujours en arrière plan.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 $book->SaveCopyAs($file);//Sauvegarde du fichier //Insérer 2E page(macro) dans fichier $idquestionnaire.xlsx unset($sheet);//Libération de $sheet unset($sheet2);//Libération de $sheet2 unset($Worksheet);//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'instance $excel
Si vous avez de bons tutos à ce propos je suis preneur aussi, je ne demande pas mieux que d'apprendre.
Partager