IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[COM] Traduction d'un code VB COM Excel vers PHP


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2008
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 17
    Points : 12
    Points
    12
    Par défaut [COM] Traduction d'un code VB COM Excel vers PHP
    Bonjour à tous,

    Je suis face à un problème assez originale.
    Je développe une application en PHP qui écrit dans un fichier Excel à l'aide de l'objet COM.

    Jusque là tout va bien, même si vous ne comprenez surement pas pourquoi je poste dans ce forum

    La procédure est la suivante :
    - je copie un fichier Excel à partir d'un autre qui contient lui-même 3 feuilles
    - j'écris dans ce nouveau fichier dans les 3 feuilles existantes
    - et je créé d'autres feuilles

    C'est là qu'intervient mon problème : lors de la création de ces nouvelles feuilles, au lieu de les placer à la suite des autres, il me les place entre la 1ère et la 2ème feuilles.

    Après avoir cherché sur le net j'ai trouvé un script VB qui pourrait m'aider, mais il faudrait que je le traduise en PHP.

    Donc s'il y a des experts PHP/VB dans le coin, je serais intéressé par un coup de main.

    Voici le script à traduire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set Sh1 = ActiveWorkbook.Worksheets.Add(After:=Worksheets("Test"))
    Sachant que pour la création d'une feuille en PHP :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Workbook = $excel_app->Workbooks->Open($file) or Die("Impossible d'ouvrir le fichier Excel");
    $Worksheet_crit = $Workbook->Worksheets->Add();
    $Worksheet_crit->activate;
    $Worksheet_crit->Name = 'nomDeMaFeuille';
    Please help !

  2. #2
    Membre à l'essai
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Septembre 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2008
    Messages : 12
    Points : 21
    Points
    21
    Par défaut
    C'est possible en utilisant la fonction Add avec tous les paramètres
    et en définissant la feuille de référence :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $Workbook = $excel_app->Workbooks->Open($file) or Die("Impossible d'ouvrir le fichier Excel");
    //récupère la feuille référence
    $Worksheet_init = $Workbook->Worksheets("Test");
    //Ajoute après 'Test'(deuxième paramètre de Add)
    //avec comme type de feuille xlWorksheet (xlWorksheet=-4167)
    $Worksheet_crit = $Workbook->Worksheets->Add(null,$Worksheet_init,1,-4167);
    $Worksheet_crit->activate;
    $Worksheet_crit->Name = 'nomDeMaFeuille';
    Rappel : Worksheets.Add(Avant, Après, Nombre, Type)
    Avant = référence du WorkSheet avant lequel on veut se placer
    Après = référence du WorkSheet après lequel on veut se placer
    Nombre = nombre de feuilles à ajouter
    Type = type de feuille (énumération de type XlSheetType)

  3. #3
    Membre à l'essai
    Inscrit en
    Mai 2008
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 17
    Points : 12
    Points
    12
    Par défaut
    Bonjour Faves,

    Merci pour votre réponse plus précise que tout ce que j'ai pu trouver sur le net.

    En fin de compte j'ai trouvé un moyen en ne passant que par du VBA, ce qui me permet d'effectuer de multiples actions sur mon fichier Excel en un seul click.

    Merci encore.

    Copyright

Discussions similaires

  1. Optimisation de code vb.net Excel vers txt
    Par aka-kluster dans le forum VB.NET
    Réponses: 13
    Dernier message: 24/07/2009, 18h42
  2. Excel et PHP avec l'objet COM
    Par hoaxpunk dans le forum Langage
    Réponses: 3
    Dernier message: 03/05/2009, 09h43
  3. [COM] Uncaught exception 'com_exception'
    Par cecile84 dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 18/10/2007, 16h52
  4. [COM][DCOM] Excel et php
    Par Jacques86 dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 19/07/2007, 15h04
  5. Erreur apache.exe / Objet COM Excel
    Par desperado007 dans le forum Apache
    Réponses: 2
    Dernier message: 16/08/2005, 13h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo