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 :

Générer et telecharger un fichier EXCEL


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur Informatique WINDEV
    Inscrit en
    Novembre 2012
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Informatique WINDEV

    Informations forums :
    Inscription : Novembre 2012
    Messages : 39
    Points : 56
    Points
    56
    Par défaut Générer et telecharger un fichier EXCEL
    Salut tous le monde.
    je suis en cour de développment d'une application PHP 5 dans laquelle j'ai besoin de generer un fichier EXCEL depuis la BDD.
    apres Des recherches j'ai trouver un tuto sur la bibliotheque " PHPExcel "
    j'ai pu realiser un script
    mon problème c'est lorsque que je veux enregistrer le fichier, si je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $objWriter->save('test.xlsx');
    cela fonctionne.
    Mais si je veux envoyer le nom de fichier par une variable il me donne une erreur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $objWriter->save($Matiere.'.xlsx');
    voila mon script:

    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
     
    $objPHPExcel = new PHPExcel();
     
    $objPHPExcel->setActiveSheetIndex(0);
    	// Titre de la feuille
    	$objPHPExcel->getActiveSheet()->setTitle('Normal'); 
     
    	$objPHPExcel->getActiveSheet()->setCellValue('B1','Année Universitair :'.$AneUniv);//Ici nous écrivons dans une cellule.
     
    	$objPHPExcel->getActiveSheet()->setCellValue('B3','Enseignat :');
    	$objPHPExcel->getActiveSheet()->setCellValue('C3',$NomEns);
     
    	$objPHPExcel->getActiveSheet()->setCellValue('B5','Semestre :');
    	$objPHPExcel->getActiveSheet()->setCellValue('C5',$Semestre);
     
    	$objPHPExcel->getActiveSheet()->setCellValue('B7','Matiere :');
    	$objPHPExcel->getActiveSheet()->setCellValue('C7',$Matiere);
     
    	$objPHPExcel->getActiveSheet()->setCellValue('B9','Etudinat Normal');
     
    	$objPHPExcel->getActiveSheet()->setCellValue('A11','NINS');
    	$objPHPExcel->getActiveSheet()->setCellValue('B11','Nom');
    	$objPHPExcel->getActiveSheet()->setCellValue('C11','PRENOM');
    	$objPHPExcel->getActiveSheet()->setCellValue('D11','NOTE DS');
    	$objPHPExcel->getActiveSheet()->setCellValue('E11','NOTE EVALUATION');
    	$objPHPExcel->getActiveSheet()->setCellValue('F11','MOYENNE');
    	$li=12;
    	foreach($TblEtuNorm as $Etu){
    		$objPHPExcel->getActiveSheet()->setCellValue('A'.$li,$Etu['nins']);
    		$objPHPExcel->getActiveSheet()->setCellValue('B'.$li,$Etu['nom_etudiant']);
    		$objPHPExcel->getActiveSheet()->setCellValue('C'.$li,$Etu['prenom_etudiant']);
    		$li++;
    	}
    $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
    $objWriter->save($Matiere.'.xlsx');
    en plus de ca j'ai un autre probème : le fichier est créé dans l'espace de development (Serveur). je veux que lorsque le fichier est generé il s'envoi directement au client (le telecharger) j'ai ve que PHPExcel ne connait pas une fonction (send ou quelque chose comme ca)

    et merci à Tous

  2. #2
    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
    1 - Quelle est l'erreur ?

    2 -pour envoyer sur le navigateur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $objWriter->save('php://output');

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur Informatique WINDEV
    Inscrit en
    Novembre 2012
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Informatique WINDEV

    Informations forums :
    Inscription : Novembre 2012
    Messages : 39
    Points : 56
    Points
    56
    Par défaut
    Salut Merci Pour votre aide

    pour la question 1 :: l'erreur c'est que je veux faire un nom dynamique du fichier (chaque fois le fichier porte un nom différent)
    j'ai mis le nom dans une variable

    mes quand je transmet cette variable au
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $NomFile=$Matiere.'.xlsx';
    str_replace(' ','-',$NomFile);
    $objWriter->save('$NomFile');
    ca me donne une erreur au niveau de je ne sais pas coment faire

    pour la question 2: j'ai esayer votre code mes il me donne une charabia dans le navigateur alors que moi je veux quet l'utilisateur reçoive une boite de dialogue (enregistrer le fichier Nom.xlsx)
    et en plus si j'utulise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $objWriter->save('php://output');
    ou je peut définire le nom de fichier

    Et merci encor

  4. #4
    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
    1 - pas d'apostrophe autour de la variable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $NomFile = str_replace(' ','-',$NomFile) . '.xlsx';
    $objWriter->save($NomFile);
    2 -
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    header('Content-Type: application/vnd.ms-excel');
    header('Content-Disposition: attachment;filename="' . $NomFile . '"');
    $objWriter->save('php://output');

  5. #5
    Membre du Club
    Homme Profil pro
    Développeur Informatique WINDEV
    Inscrit en
    Novembre 2012
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Informatique WINDEV

    Informations forums :
    Inscription : Novembre 2012
    Messages : 39
    Points : 56
    Points
    56
    Par défaut
    Merci chaire amie pour votre aide j'ai ajouter votre code
    -->pour le telechargement c bon il telecharge mé le fichier telecharger

    1-son nom n'est pas le nom que je lui indique dans la vaiable
    2-et en plus de ca le fichier et de extension .xls et il ne souvre pas il me donne " le format de fichier nes pas compatible...."

    je c pas chaire amie pq il me fais ca

  6. #6
    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
    Je ne l'ai pas remis mais dans le cas 2 il faut également ajouter l'extension xlsx comme tu l'avais fait dans le cas 1.

Discussions similaires

  1. telecharger un fichier excel et l'enregistrer dans une base MYSQL
    Par spartacus10 dans le forum Développement de jobs
    Réponses: 0
    Dernier message: 04/05/2012, 11h33
  2. Réponses: 1
    Dernier message: 26/06/2009, 15h50
  3. Telecharger un fichier excel depuis le web via PERL
    Par ptimos93800 dans le forum Web
    Réponses: 3
    Dernier message: 19/03/2009, 18h38
  4. Générer et formatter un fichier excel depuis php
    Par unaspera dans le forum Langage
    Réponses: 5
    Dernier message: 24/01/2007, 12h08

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