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

Langage PHP Discussion :

Classe COM en PHP ?


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 77
    Points : 39
    Points
    39
    Par défaut Classe COM en PHP ?
    Bonjour,

    J'aimerais utiliser la classe .NET COM en php avec wampserver pour convertir un fichier xls en html et j'aimerais savoir comment configurer php pour que wamp puisse afficher ces fonctionnalitées ?

    Dans l'attente,

    Barbuslex.

  2. #2
    Membre émérite
    Avatar de Seb33300
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Thaïlande

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 564
    Points : 2 399
    Points
    2 399
    Par défaut
    A quoi sert cette classe COM ?

    Peut être existe t il un équivalent php
    Zend Certified PHP Engineer

    « Crois-tu comprendre le monde juste en matant le 20H Ou connaître l'histoire en ayant lu que l'angle des vainqueurs ? » Keny Arkana

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    957
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 957
    Points : 1 177
    Points
    1 177
    Par défaut
    Il me semble que la librairie COM est par défaut activé (PHP Windows).
    Je l'ai utilisé récemment et je ne me souviens pas d'avoir du activer quoi que ce soit.

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 77
    Points : 39
    Points
    39
    Par défaut
    Oui et comment s'en sert on ?
    J'ai touver ceci sur google : http://fr.php.net/manual/fr/class.com.php

    Mais ce n'est pas complet il manque toutes les fonction associé.
    Quelqu'un peut il m'éclairer sur le développement de cette classe ?

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    957
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 957
    Points : 1 177
    Points
    1 177
    Par défaut
    En fait COM te donnera acces aux fonctions de l'application que tu veux utiliser.
    Par exemple si tu veux utiliser Excel. Une fois que tu auras instentié l'objet COM tu auras acces au fonction VBScript d'Excel.

    http://stephaneey.developpez.com/tutoriel/php/phpexcel/

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 77
    Points : 39
    Points
    39
    Par défaut
    A ok c'est déjà un peux plus claire.
    Il y a t'il un moyen de connaitre justement toutes ces possibilités VBScript ?

    En ce qui me concerne j'utilise Excel 2007 et j'aimerais convertir un .xls en .html via php

    J'ai donc coder ceci juste pour ouvrir et fermer le fichier (pour tester si cela marche) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
     
    com_load_typelib("excel.application");
    	$excel = new COM("excel.application") or die("Impossible d'instancier l'application Word");
    	$excel->Visible = 1;
    	$excel->Workbooks->Open("./edt.xls");
    	$excel->Quit();
    	$excel->Release();
    	$excel = null;
     
    ?>
    Et j'obtiens cette erreure :
    Fatal error: Uncaught exception 'com_exception' with message '<b>Source:</b> Microsoft Office Excel<br/><b>Description:</b> './edt.xls' introuvable. Vérifiez l'orthographe du nom du classeur et la validité de l'emplacement. Si vous essayez d'ouvrir le fichier à partir de la liste des fichiers les plus récents, assurez-vous que le fichier n'a pas été renommé, déplacé ou supprimé.' in C:\wamp\www\projet\traitement.php:24 Stack trace: #0 C:\wamp\www\projet\traitement.php(24): variant->Open('./edt.xls') #1 {main} thrown in C:\wamp\www\projet\traitement.php on line 24
    Quelqu'un peut il m'aider svp ?

  7. #7
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Il y a t'il un moyen de connaitre justement toutes ces possibilités VBScript ?
    Il faut lire la documentation VBA.

    Pour ton erreur, elle est claire : ton fichier n'est pas a l'endroit ou tu essaies de l'ouvrir.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 77
    Points : 39
    Points
    39
    Par défaut
    A daccord et elle se situe ou cette documentation ?

    Beh en fait dans le même répertoire j'ai :
    traitement.php
    edt.xls

    Donc je ne vois pas comment le fichier n'est pas à l'endroit que je lui indique ^^
    Quelqu'un peut il m'aider ?

  9. #9
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Dans l'editeur VBA, tu appuies comme toujours sur F1
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 77
    Points : 39
    Points
    39
    Par défaut
    Oue daccord mais dans cette doc cela ne parle pas de la classe COM et je ne vais pas tout lire les fonctions que je n'ai pas besoin lol

    Sinon pour mon code j'ai vu en faisant des recherches que je ne suis pas le seul a obtenir cette erreur donc comment cela peut il se faire ?

  11. #11
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    957
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 957
    Points : 1 177
    Points
    1 177
    Par défaut
    Comme le dit Sabotage tu dois appuyer sur la touche F1 pour obtenir la doc VBA mais avant cela il faut basculer en mode edition.

    ALT + F11

    Sinon pour mon code j'ai vu en faisant des recherches que je ne suis pas le seul a obtenir cette erreur donc comment cela peut il se faire ?
    Tu dois mettre en parametre le chemin absolu car COM ne connait pas ton document root.

  12. #12
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Oue daccord mais dans cette doc cela ne parle pas de la classe COM
    L'objet COM est juste une interface vers VBA ; tout ce qu'il y a a savoir est donc dans la doc VBA.
    je ne vais pas tout lire les fonctions que je n'ai pas besoin lol
    La documentation VBA integré propose (evidemment) des possibilités de recherche.
    C'est egalement un langage largemment documenté sur le net.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 77
    Points : 39
    Points
    39
    Par défaut
    J'ai un peu regarder la doc et je trouve que mon code PHP est correct par contre je ne comprend toujours pas pourquoi j'ai cette erreure avec wamp ?

  14. #14
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    957
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 957
    Points : 1 177
    Points
    1 177
    Par défaut
    Citation Envoyé par barbuslex Voir le message
    J'ai un peu regarder la doc et je trouve que mon code PHP est correct par contre je ne comprend toujours pas pourquoi j'ai cette erreure avec wamp ?
    As-tu essayé le chemin absolu?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <?php
     
    com_load_typelib("excel.application");
    	$excel = new COM("excel.application") or die("Impossible d'instancier l'application Word");
    	$excel->Visible = 1;
    	$excel->Workbooks->Open("c:\\chemin\\absolu\\edt.xls");
    	$excel->Quit();
    	$excel->Release();
    	$excel = null;

  15. #15
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 77
    Points : 39
    Points
    39
    Par défaut
    J'ai essayé ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
     
    $com = new COM('Excel.Application') or die("Impossible d'instancier Excel !");
    $wb = $com->Workbooks->Add();
    $wb->SaveAs("C:\\edt2.xls");
     
    ?>
    Cela me crée bien un fichier edt2.xls dans le C: de mon PC.

    Par contre lorsque je fais ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
     
    $com = new COM('Excel.Application') or die("Impossible d'instancier Excel !");
    $com->Visible = 1;
    $com->Workbooks->Open("C:\\edt.xls");
    $com->Workbooks(1)->SaveAs("C:\\edt2.xls");
    $com->Quit();
    $com-Release();
    $com = null;
     
    ?>
    La page charge un fichier avec des n° (temporaire) est crée dans le C: mais la page ne termine pas.

    Pouvez vous m'éclairer ?

  16. #16
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 77
    Points : 39
    Points
    39
    Par défaut
    Apparament il s'agit d'un problème de droits d'accès au fichier .xls car j'ai testé sous windows xp avec la meme configuration et cela fonctionne.

    Sur ma machine je fonctionne sous Windows 7 64 Bits comment peut on faire pour donner a Wamp le droit d'accès au fichier ?

    Salut,

    J'ai essayé ce code sous Windows 7 et Windows Vista 64 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $com = new COM('Excel.Application') or die("Impossible d'instancier Excel !");
    $com->Visible = 1;
    $com->Workbooks->Open(dirFichier);
    $wb = $com->Workbooks(1);
    $wb->SaveAs(dirFichierHtml,44);
    $com->Workbooks->Close();
    $com->Quit();
    $com = null;
    J'obtient cette erreure :

    Fatal error: Uncaught exception 'com_exception' with message
    '<b>Source:</b> Microsoft Office Excel<br/><b>Description:</b> './edt.xls' introuvable. Vérifiez l'orthographe du nom du classeur et la validité de l'emplacement. Si vous essayez d'ouvrir le fichier à partir de la liste des fichiers les plus récents, assurez-vous que le fichier n'a pas été renommé, déplacé ou supprimé.'...
    Alors que j' l'ai testé sous Windows XP SP3 Pro et cela marche super bien. J'ai exactement le même wamp sur le 3 machines (2.0i) et le même pack office 2007.

    Donc je ne comprend pas pourquoi cela fonctionne sur windows xp et non pas sur windows seven ou vista.

    Quelqu'un peut m'aider ?

    Merci d'avance,
    ++

Discussions similaires

  1. Réponses: 7
    Dernier message: 05/07/2006, 15h32
  2. Réponses: 3
    Dernier message: 19/03/2006, 09h10
  3. Réponses: 3
    Dernier message: 15/03/2006, 14h53
  4. [COM] Problème COM et PHP
    Par goldeneagle dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 27/09/2005, 22h41

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