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] Sauvegarde


Sujet :

Bibliothèques et frameworks PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif Avatar de goute
    Homme Profil pro
    Développeur éclectique
    Inscrit en
    Novembre 2008
    Messages
    224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur éclectique
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2008
    Messages : 224
    Par défaut [COM] Sauvegarde
    bonjour à tous,

    Me revoila avec mes fichiers excel mais avec une nouvelle methode de creation, qui... ne fonctionne pas.

    mon code est bon, la c'est un exmple topé sur internet :

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    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
    et j'ai cette erreur la :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Fatal error: Uncaught exception 'com_exception' with message '<b>Source:</b> Microsoft Office Excel<br/><b>Description:</b> Impossible de lire la propriété SaveAs de la classe Workbook.' in C:\wamp\www\PCB\DATA\Extractions.php:312 Stack trace: #0 C:\wamp\www\PCB\DATA\Extractions.php(312): variant->saveas('C:\tests.xls') #1 C:\wamp\www\PCB\DATA\Acceuil.php(46): include('C:\wamp\www\PCB...') #2 {main} thrown in C:\wamp\www\PCB\DATA\Extractions.php on line 312
    mon serveur est sous vista, et des bruits courent disant que c'est un problème de compatibilité, enfin c'est un problème que je n'arrive pas a résoudre, donc si vous aviez une idée, mieux, une solution, je vous en serais très reconnaissant.

    merci d'avance.

  2. #2
    Nouveau candidat au Club
    Inscrit en
    Juillet 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 2
    Par défaut autre méthode
    Pour utiliser un fichier excel avec les objets COM je fait comme suit :

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    //Ouverture du fichier Excel ou seront envoyé les données
    define("FILENAME",nomdufichierexcel);
    if(file_exists(FILENAME))
    {      
    //ouverture du fichier grace aux objets COM.
       $excel=new COM("Excel.application" );
       
    //attention, il faut modifier ce chemin lors de la mise en place du script
       $excel->Workbooks->Open('C:/chemindemonfichier/'.FILENAME);
       
    //Pour voir les opérations dans excel sur le serveur
       $excel->visible=1;
    
       $book=$excel->Workbooks(1);
       $sheet=$book->Worksheets(1);
    }
    
    //pour écrire dans le fichier 	
        $cell=$sheet->Range('B1'); //selection de la cellule B1
        $cell->value='mavaleur'; 
    
    
    //Sauvegarde et Fermeture du fichier final
       $book->Save();
       unset($sheet);
       unset($book);
       $excel->Workbooks->Close();
       $excel->Quit();
       unset($excel);
    Voila j'espère que ça pourras te faire avancer.

    Matt.

  3. #3
    Membre éprouvé
    Inscrit en
    Juin 2009
    Messages
    138
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Juin 2009
    Messages : 138
    Par défaut
    t'as bien pensé à fermer le fichier xls que tu génères dans ton code ??

Discussions similaires

  1. Rejoignez la rédaction de www.developpez.com
    Par Community Management dans le forum Evolutions du club
    Réponses: 22
    Dernier message: 28/12/2015, 12h06
  2. Tutoriels, F.A.Q : la rubrique Assembleur de Developpez.com
    Par Alcatîz dans le forum Assembleur
    Réponses: 3
    Dernier message: 07/06/2007, 20h14
  3. Documentation gratuite sur l'API Windows, COM, DCOM, OLE, etc.
    Par Community Management dans le forum Windows
    Réponses: 1
    Dernier message: 16/11/2006, 16h28
  4. [Kylix] Sauvegarde de donnée utilisateur....
    Par Eclypse dans le forum EDI
    Réponses: 1
    Dernier message: 11/05/2002, 18h21

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