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 :

[PHPExcel] Génération de Fichiers Excel [Tutoriel]


Sujet :

Bibliothèques et frameworks PHP

  1. #101
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    Le code suivant, me permet de générer le code voulu sans devoir faire aucune action.

    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
     
    <?php
    include 'Classes/PHPExcel/IOFactory.php';
     
    //on instancie un objet de lecture
    $objReader = PHPExcel_IOFactory::createReader('Excel5');
     
    //on charge le fichier qu'on veut lire
     
    $objPHPExcel = $objReader->load("PPSvM.xls");
    //on récupère le premier sheet
    $sheetupa=$objPHPExcel->getSheet(0);
    //on change le nom du sheet
    $sheetupa->setTitle('coco');
     
     
    $sheetupa->setCellValue('H12',2);
    $sheetupa->setCellValue('M12',25);
    $sheetupa->setCellValue('N12','=IF(CELL("contenu",M12)=0,0,L12/M12)');
     
     
    //on crée un nouveau fichier
    $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
    //on l'envoie au navigateur
     header('Content-type: application/vnd.ms-excel');
     header('Content-Disposition:inline;filename=');
     
    $objWriter->save('php://output');
    ?>

  2. #102
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 20
    Points : 22
    Points
    22
    Par défaut
    bin je met le même code et j'ai toujours le même soucis... Cela doit être un soucis de paramétrage d'Excel...J'ai pourtant le calcul automatique d'activé..
    Merci de ton aide.

  3. #103
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    Heu moi je le passe par calc (Ooo), et c'est la configuration d'origine !

  4. #104
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 20
    Points : 22
    Points
    22
    Par défaut
    Par calc? C'est la config d'origine? J'ai pas bien compris là..

  5. #105
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    En ce sens que je n'utilise pas le logiciel Excel de Microsoft , mais Calc de OpenOffice.

  6. #106
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 20
    Points : 22
    Points
    22
    Par défaut
    ah ok et mon fichier fonctionne bien sous OpenOffice?

  7. #107
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    pour ma part oui

  8. #108
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 4
    Points : 6
    Points
    6
    Par défaut openoffice et autre
    bonjour et félicitations pour cet outil trés pratique pour ma génération de facture en automatique.

    est-il possible d'adapter ce "script" pour une utilisation avec des fichiers open office calc en .ods ?

    J'ai une ancienne version excel 2002 ? quel compatibilité dois-je utilisé pour lire/écrire dans un fichier avec PHPexcel ?

    d'avance merci pour ces réponses.

  9. #109
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    Citation Envoyé par tomtom73 Voir le message
    bonjour et félicitations pour cet outil trés pratique pour ma génération de facture en automatique.

    est-il possible d'adapter ce "script" pour une utilisation avec des fichiers open office calc en .ods ?

    J'ai une ancienne version excel 2002 ? quel compatibilité dois-je utilisé pour lire/écrire dans un fichier avec PHPexcel ?

    d'avance merci pour ces réponses.
    Pour ma part sur des fichiers pas trop complexes(simple donc), on peut utiliser Excel5 sans trop problèmes(j'ai des altérations de couleurs sur le fond de mes cellules), a partir de Ooo 3.0, on peut alors passer sous un format XML et utiliser le format Excel2007.

    PS: je ne génère mes fichiers que sous calc

    MaitrePylos

  10. #110
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 20
    Points : 22
    Points
    22
    Par défaut
    Est-il possible de récupérer la somme de toutes les cellules A6 (par exemple) des différentes feuilles d'un fichier Excel?

  11. #111
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    Si c'est possible en Excel, alors cela doit-être possible en PHPExcel, dis moi comment tu fais en Excel

  12. #112
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 20
    Points : 22
    Points
    22
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    =SOMME('Feuille 1'!A6;'Feuille 2'!A6)
    Voilà le code Excel ^^

  13. #113
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    Et ceci ne fonctionne pas alors ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $sheet->setCellValue('A1','=SOMME('Feuille 1'!A6;'Feuille 2'!A6)');

  14. #114
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 20
    Points : 22
    Points
    22
    Par défaut
    Si cela fonction bien excuse pour la lenteur de la réponse..
    Bon j'ai un nouveau problème...
    Je remplit le fichier Excel à partir d'une base de donnée ( pas mal d'infos brassées..)
    Et j'ai une erreur pour la création de mon fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <b>Fatal error</b>:  Allowed memory size of 134217728 bytes exhausted (tried to allocate 16832706 bytes) in <b>C:\wamp\www\application\my_classes\Classes\PHPExcel\Worksheet.php</b> on line <b>2480</b>
    Avez-vous déjà eu ce genre de problème?
    Merci encore de votre aide !

  15. #115
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    oui, il faut augmenter la mémoire dans le php.ini

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    memory_limit = 128M
    Moi je l'ai passé à 256

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    memory_limit = 256M
    N'oublie pas de redémarrer Apache après.

  16. #116
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 20
    Points : 22
    Points
    22
    Par défaut
    En fait le problème vient de la fonction copy() de PHPExcel..
    Je cherche sur leur forum une solution mais c'est pas gagné...

  17. #117
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 20
    Points : 22
    Points
    22
    Par défaut
    Je me suis débrouillé pour éviter le problème de mémoire ça fonctionne dorénavant ^^ Cependant lorsqu'on veut plusieurs onglet et qu'on les rajoute sans faire de fichier temporaire cela utilise beaucoup de mémoire.

    Sinon j'ai un nouveau petit soucis, je ne sais pas si quelqu'un a une idée.
    Je voudrais que juste avant d'enregistrer le fichier la hauteur et largeur des lignes et colonnes soient réadaptés en fonction du contenu.
    Est-ce possible?

  18. #118
    Futur Membre du Club
    Inscrit en
    Avril 2004
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 6
    Points : 6
    Points
    6
    Par défaut Et les images
    Bonjour,

    J'ai des feuilles excel qui contiennent des données mais aussi des images dans certaines cellules.

    Je dois 'lire' ce fichier et mettre les infos dans une base de données mais c'est possible "d'extraire" aussi les images d'une cellule afin de la sauver sur le serveur ?

    Amicalement
    Patrick

  19. #119
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 73
    Points : 60
    Points
    60
    Par défaut
    Bonjour, j'ai moi aussi une question, toutes mes générations de tableau php en tableur sortent en lecture seul, est ce une erreur (quelconque) de ma part, ou une mauvaise configuration (de ma part) de PHPExcel ?

  20. #120
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    @objectifweb : il faut essayer
    @te-san : oui c'est normal !

Discussions similaires

  1. [Excel] Bug I.Explorer après génération de fichiers excel
    Par wtoueress dans le forum Bibliothèques et frameworks
    Réponses: 20
    Dernier message: 30/06/2008, 13h40
  2. Génération de fichier Excel Ou Word
    Par Maz85 dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 23/08/2007, 17h28
  3. Génération de fichiers Excel à partir de code HTML
    Par grincheux dans le forum ASP.NET
    Réponses: 2
    Dernier message: 01/06/2007, 14h39
  4. [Excel] Génération de fichiers
    Par abidi_niz dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 11/07/2006, 09h29
  5. [VBA-E]Génération de fichiers Excel à partir d'un autre
    Par cyrille2k5 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 04/05/2006, 10h27

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