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 :

[PHPExcel] Nom d'un fichier Excel contenant une variable


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2013
    Messages : 56
    Par défaut [PHPExcel] Nom d'un fichier Excel contenant une variable
    Bonjour à tous,

    Je suis en train de coder un programme qui me génère un fichier Excel et qui le remplit des données provenant de ma base de données et qui me l'enregistre dans un dossier. Ça c'est OK.

    Par contre j'ai un petit problème, qui va peut-être vous paraître tout bête, c'est que je n'arrive pas à donner le nom que je veux à mon fichier. Effectivement le titre de mon fichier Excel doit comporter une date qui est une variable (les dates changent chaque semaine).

    Voici mon code:
    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
    37
    38
    39
    40
    <?php
     
    /** Afficher toutes les erreurs */
    error_reporting(E_ALL);
     
    /** Ajoutons les classes PHPExcel à l'include_path **/
    ini_set('include_path', ini_get('include_path').';../Classes/');
     
    include ('Classes/PHPExcel.php'); //Contient les fonctions générales
    include ('Classes/PHPExcel/Writer/Excel2007.php'); //Permet de créer un document au format xls
     
    //Génération du document
    echo date('H:i:s') . " Creation du nouveau classeur\r\n";
    $classeur = new PHPExcel();
     
    //On récupère la date du prochain CODEP (Mercredi)
    $date = new DateTime('next wednesday');
    //Conversion de la date en type string
    $date_str = $date->format('d/m/y');
     
    //Création de la feuille active
    $feuille = $classeur->getActiveSheet();
     
    $feuille->setTitle('ODJ CODEP'); //Titre de la feuille de calcul
     
    $feuille->setCellValueByColumnAndRow(0, 1, $date_str);
     
    //Noms des colonnes.......
     
    //Enregistrement du document
    $writer = new PHPExcel_Writer_Excel2007($classeur);
    $writer->setOffice2003Compatibility(true);
    //$records = './Excel_ODJ/ODJ CODEP.xls';
    $records = './Excel_ODJ/ODJ CODEP du "'.$date_str.'".xlsx';
    $writer->save($records);
     
    // Terminé
    echo date('H:i:s') . " Done writing file.\r\n";
     
    ?>
    C'est cette ligne qui me pose problème:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $records = './Excel_ODJ/ODJ CODEP du "'.$date_str.'".xlsx';
    Elle me renvoie cette erreur:

    Fatal error: Uncaught exception 'PHPExcel_Writer_Exception' with message 'Could not close zip file ./Excel_ODJ/ODJ CODEP du "22/04/15".xlsx.' in /data/www/mobmkt-pprod.reseau/html/www/codep_so/Classes/PHPExcel/Writer/Excel2007.php:399 Stack trace: #0 /data/www/mobmkt-pprod.reseau/html/www/codep_so/Export_ODJ.php(49): PHPExcel_Writer_Excel2007->save('./Excel_ODJ/ODJ...') #1 {main} thrown in /data/www/mobmkt-pprod.reseau/html/www/codep_so/Classes/PHPExcel/Writer/Excel2007.php on line 399
    Si j'enlève la variable $date_str, je n'ai pas de problème évidemment!

    Quelqu'un sait comment je peux insérer une variable dans le nom de mon fichier Excel?

    Merci!!

  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
    Par défaut
    On ne peut pas avoir un / ou : dans un nom de fichier.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Tant qu'à faire, évite aussi les espaces et les caractères spéciaux, histoire d'éviter les problèmes potentiels de changement d'OS au niveau du serveur Le mieux est de s'en tenir aux alpha-numériques...
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  4. #4
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2013
    Messages : 56
    Par défaut
    Mais mes slashs ne posent pas problème. Ils servent juste à indiquer que je veux enregistrer mon fichier Excel dans le dossier Excel_ODJ, ce qui fonctionne correctement si je ne met pas de variables dans le nom de mon fichier excel

  5. #5
    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
    Par défaut
    Tu vois bien qu'il y a un problème dans le nom du fichier :
    CODEP du "22/04/15".xlsx
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Oh, j'avais pas vu les quotes dans le nom de fichier en plus des slashs
    Suggestion de nom de fichier : "ODJ_ODEP_20150420"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    //On récupère la date du prochain CODEP (Mercredi)
    $date = new DateTime('next wednesday');
    //Conversion de la date en type string
    $date_str = $date->format('ymd');
    $records = './Excel_ODJ/ODJ_ODEP_'.$date_str.'.xlsx';
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

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

Discussions similaires

  1. [XL-2010] Lancement fichier Excel contenant une macro
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/11/2012, 16h41
  2. Réponses: 4
    Dernier message: 24/02/2009, 23h09
  3. Réponses: 3
    Dernier message: 08/08/2008, 10h10
  4. Réponses: 4
    Dernier message: 23/02/2007, 09h36
  5. Réponses: 3
    Dernier message: 14/02/2007, 10h37

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