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] Libération mémoire


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    MC2
    MC2 est déconnecté
    Membre habitué

    Femme Profil pro
    Chef de projet en SSII
    Inscrit en
    Août 2002
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 55
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Août 2002
    Messages : 148
    Points : 199
    Points
    199
    Par défaut [COM] Libération mémoire
    Bonjour,
    j'ai voulu tester la manipulation d'Excel via COM en suivant le tuto de Stephane Eyskens http://stephaneey.developpez.com/tutoriel/php/phpexcel/ mais voilà, mon soucis est que Excel reste en mémoire.
    J'ai testé plein de truc mais rien n'y fait et je dois tuer Excel dans le Task Manager.
    Je suis en PhP 4.2, Windows 2K et Excel 2K (anglais).
    Voici mon code, si qqun a une idée :
    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
    <?php
    define("FILENAME","C:\\Developpement\\php\\Excel\\phpexcel.xls"); //constante: nom du fichier à générer
    if(file_exists(FILENAME)){	//Suppression du fichier précédement créé
    		unlink(FILENAME); //Suppression du fichier
    	}
    $excel=new COM("Excel.Application") or die("Impossible d'ouvrir Excel"); //Instanciation de l'objet COM
    echo ("new COM");
    //$excel->sheetsinnewworkbook=1;//1 seule feuille de calcul dans le document
    $excel->Workbooks->Add();//Ajout d'un classeur
    //$excel->visible=true;
    echo ("<br>new book");
    $book=$excel->Workbooks[1];//$book contient le classeur actif
    $sheet=$book->Sheets[1];//$sheet contient la feuille active
    echo ("<br>new sheet\n");
    $sheet->Name="Test Excel";//Attribution d'un nom à la feuille
    for ($i=1;$i<=10;$i++) {
    	$cell=$sheet->Cells($i,1);//'A'.$i);
    	$cell->value=$i;
    	$cell->Font->ColorIndex = 41;//Coloration
    	echo ("<br>A$i -> $i\n");
    }
    $book->SaveAs(FILENAME);//Sauvegarde du fichier
    echo ("<br>save book en ".FILENAME);
    $book->Close(false);
    unset($cell);
    unset($sheet);//Libération de $sheet
    //$excel->Workbooks->Close();//Fermeture du classeur
    unset($book);//Libération de $book
    $excel->Quit;//On quitte Excel
    unset($excel);//Libération de l'instance $excel
    echo ("<br>Fin");
    ?>
    </body>
    </html>
    Merci par avance.

  2. #2
    Membre éclairé
    Avatar de Kioob
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    550
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 550
    Points : 764
    Points
    764
    Par défaut
    Hello,

    J'ai longtemps eu le problème.... et n'ai jamais trouvé de "vraie" solution....


    M'enfin avec ton code, c'est peut etre normal, essaye de remplacer ça :
    par ça :
    Et si tu as toujours le problème : mets à jour PHP ! La version 4.2.2 date de Mathusalem...

  3. #3
    Membre à l'essai
    Inscrit en
    Janvier 2006
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 19
    Points : 23
    Points
    23
    Par défaut
    Coucou,

    J'ai eu aussi les mêmes problèmes de freeze d'Excel, j'ai pas mal cherché de solutions à ce sujet et je me suis finallement diriger vers d'autres outils pour ça.

    J'ai trouvé Biffbase, c'est pas ultra puissant mais c'est pas mal, c'est léger. Il nécessite l'install de Zend :
    http://www.web-aware.com/biff/
    Tu pourras y télécharger la doc et les sources.

    Par contre Kioob a raison, tu devrais mettre à jour ta version PHP

    @ +

  4. #4
    MC2
    MC2 est déconnecté
    Membre habitué

    Femme Profil pro
    Chef de projet en SSII
    Inscrit en
    Août 2002
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 55
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Août 2002
    Messages : 148
    Points : 199
    Points
    199
    Par défaut
    Hello,
    merci pour vos réponses.
    Kioob, pour le Quit, c'est pareil avec ou sans ().
    En fait, je sais que la version 4.2.0 (et pas 4.2.2, c'est pire !) date mais je suis obligée de garder cette version à cause d'une maintenance en cours.
    Cela dit, je vais quand même essayer d'upgrader EasyPhP et tester.
    Si ça ne marche pas mieux, je remettrai la version actuelle.
    Merci encore, je vous tiens au courant !

  5. #5
    MC2
    MC2 est déconnecté
    Membre habitué

    Femme Profil pro
    Chef de projet en SSII
    Inscrit en
    Août 2002
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 55
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Août 2002
    Messages : 148
    Points : 199
    Points
    199
    Par défaut
    Je laisse tomber PhP 4.3.10 qui plante complètement avec COM...
    Je vous le donne en 1000 ! La réponse est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	$font=$cell->Font;
    	$font->ColorIndex = 41;//Coloration
    au lieu de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      $cell->Font->ColorIndex = 41;
    Bref, ne pas utiliser 2 niveaux de propriété !
    A+

  6. #6
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Peut-etre parce que tu ne l'a pas installée toute seule, mais faisant partie d'un package tout fait easyphp...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Libération mémoire TSQLQuery
    Par obione dans le forum Bases de données
    Réponses: 9
    Dernier message: 28/03/2007, 10h02
  2. Réponses: 5
    Dernier message: 14/03/2007, 14h56
  3. Problème de libération mémoire
    Par chrono23 dans le forum C++
    Réponses: 16
    Dernier message: 07/09/2006, 23h18
  4. Réponses: 3
    Dernier message: 14/03/2006, 05h19
  5. FIREBIRD + APPLI EN C : Problèmes de libération mémoire
    Par lio33 dans le forum Connexion aux bases de données
    Réponses: 4
    Dernier message: 16/09/2005, 09h07

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