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] Load avec nom du fichier passé en paramètre


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 9
    Points : 6
    Points
    6
    Par défaut [PHPExcel] Load avec nom du fichier passé en paramètre
    bonjour,

    j'aurai besoin d'afficher dans une page PHP le nom des onglets d'un classeur excel, le nom du classeur excel est passé en paramètre lors de l'appel de ma page php, et je sais pas pourquoi j'y arrive pas

    je me suis rendu compte que c'est le fait de mettre une variable dans la fonction load() qui ne fonctionnait pas, j'ai du mal à croire que c'est pas possible, je mets en dessous les différents codes pour mieux visualiser mon propos

    si je mets en dur le nom du fichier ça fonctionne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $excel = $objet->load('./fichiers/monfichier.xls');
    si je mets le nom du fichier en variable ça fonctionne pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $fic='./fichiers/monfichier.xls';
     
    $excel=$object->load($fic);  // fonctionne pas
     
    $excel=$object->load('\''.$fic.'\''); // j'ai essayé de concaténer la variable avec des quote mais ca fonctionne pas non plus
    si quelqu'un pourrait me dire ou est mon erreur, un grand merci à lui.

    cdtl

    alain

  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
    Quand tu dis que ça ne fonctionne pas, tu obtiens quoi exactement ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    j'obtient le message suivant, j'ai fais un copier-coller de la page html


    ( ! ) SCREAM: Error suppression ignored for
    ( ! ) Notice: Undefined variable: object in D:\wamp\www\exportexcel\phpexcel.php on line 55
    Call Stack
    # Time Memory Function Location
    1 0.0007 267192 {main}( ) ..\phpexcel.php:0

    ( ! ) SCREAM: Error suppression ignored for
    ( ! ) Fatal error: Call to a member function load() on a non-object in D:\wamp\www\exportexcel\phpexcel.php on line 55
    Call Stack
    # Time Memory Function Location
    1 0.0007 267192 {main}( ) ..\phpexcel.php:0

  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
    $object n'est visiblement pas défini dans ton script.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    je mets mon code en dessous pour aoir une vue d'ensemble cohérente,

    ce que je comprends pas c'est :

    pourquoi ça fonctionne quand le fichier est mis en dur dans le load() et pourquoi ça fonctionne pas avec la variable?

    je pense que si c'est un problème de déclaration de variable ça ne devrrait pas fonctionner dans les 2 cas.

    pour information, j'ai viens de me remettre au php apres plusieurs années d'arrêt et je suis en train de découvrir le module phpexcel, d'ou cetaines lignes dans mon code certainement superflues et/ou en doublon

    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    <html>
    <head>page sheets </head>
    <body>
     
    <?php
     
    /** Ajoutons les classes PHPExcel à l'include_path **/
    ini_set('include_path', ini_get('include_path').';../Classes/');
     
    $path = './';
     
    set_include_path(get_include_path() . PATH_SEPARATOR . $path);
     
     
    function __autoload($classe){
        $fichier = str_replace
           (
             '_',           # Caractère à remplacer.
             DIRECTORY_SEPARATOR, # Caractère de remplacement.
             $classe              # Cible du remplacement.
           ) . '.php' ;
        require_once($fichier) ; # Chargement de la classe.
    }
     
     spl_autoload_register();
     
    error_reporting(E_ALL);
     
    ini_set('display_errors', TRUE);
     
    ini_set('display_startup_errors', TRUE);
     
    date_default_timezone_set('Europe/London');
     
    define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
     
    date_default_timezone_set('Europe/London');
     
    /** PHPExcel_IOFactory */
     
    require_once '../Classes/PHPExcel/IOFactory.php';
    require_once '../Classes/PHPExcel/Shared/ZipStreamWrapper.php';
     
    $objet = new PHPExcel_Reader_Excel5();
     
    //$fic= './'.$_REQUEST['dossier'].'/'.$_REQUEST['fichier'];
     
     
     
    //$excel = $objet->load('./fichiers/monfichier.xls'); //  <--fonctionne 
     
    $fic='./fichiers/monfichier.xls'; // <-- fonctionne pas
    $excel=$object->load($fic); // <-- fonctionne pas
     
    $name_sheet = $excel->getSheetNames();
     
    $nbsheets=count($name_sheet);
     
    echo print_r($name_sheet);
     
    $count_sheet = $excel->getSheetCount();
     
    echo '--->'.$count_sheet.'  '.$fic;
     
    ?>
     
    <table border=1>
    <tr>
    <td>sdsd</td><td>skjflsjl</td>
    </tr>
    <?php 
    echo date('H:i:s').' - debut';
    for ($i = 0; $i < $nbsheets; $i++) {
     
    ?>
    <tr>
    <td><?php echo $i; ?></td><td><?php echo $name_sheet[$i];?></td>
    <td><?php
     
    $objWriter = PHPExcel_IOFactory::createWriter($excel, 'CSV')->setDelimiter(';')
                                                                      ->setEnclosure('')
                                                                      ->setLineEnding("\r\n")
                                                                      ->setSheetIndex($i)
                                                                      ->save($name_sheet[$i].'_essai.csv');
     
    ?>                                                                                                                                                                                                                                                       
     
    </td>
    </tr>
     
    <?php } 
     
    echo date('H:i:s').' - fin ';
    ?>
     
    </table>
    </body>
    </html>

  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
    Avec ce code la tu obtiens quelles erreurs ?

    C'est un peu difficile de te suivre car l'erreur que tu nous donnais avant est sur la ligne 55... celle qui est censée fonctionner.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    effectivement par souci de compréhension j'ai déplacé deux lignes ce qui donne un décalage par rapport au post sur l'erreur , toutes mes excuses

    pour infomation, effectivement ma première ligne commence à 2 et le script se termine à la ligne 100, il n'y a pas de décalage suite à la copie du post donc la ligne 55 c'est --> $excel=$object->load($fic);

    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    <html>
    <head>page sheets </head>
    <body>
     
    <?php
     
    /** Ajoutons les classes PHPExcel à l'include_path **/
    ini_set('include_path', ini_get('include_path').';../Classes/');
     
    $path = './';
     
    set_include_path(get_include_path() . PATH_SEPARATOR . $path);
     
     
    function __autoload($classe){
        $fichier = str_replace
           (
             '_',           # Caractère à remplacer.
             DIRECTORY_SEPARATOR, # Caractère de remplacement.
             $classe              # Cible du remplacement.
           ) . '.php' ;
        require_once($fichier) ; # Chargement de la classe.
    }
     
     spl_autoload_register();
     
    error_reporting(E_ALL);
     
    ini_set('display_errors', TRUE);
     
    ini_set('display_startup_errors', TRUE);
     
    date_default_timezone_set('Europe/London');
     
    define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
     
    date_default_timezone_set('Europe/London');
     
    /** PHPExcel_IOFactory */
     
    require_once '../Classes/PHPExcel/IOFactory.php';
    require_once '../Classes/PHPExcel/Shared/ZipStreamWrapper.php';
     
    $objet = new PHPExcel_Reader_Excel5();
     
    //$fic= './'.$_REQUEST['dossier'].'/'.$_REQUEST['fichier'];
     
    $fic='./fichiers/monfichier.xls';
     
    //$excel = $objet->load('./fichiers/monfichier.xls');
    $excel=$object->load($fic);
     
    $name_sheet = $excel->getSheetNames();
     
    $nbsheets=count($name_sheet);
     
    echo print_r($name_sheet);
     
    $count_sheet = $excel->getSheetCount();
     
    echo '--->'.$count_sheet.'  '.$fic;
     
    ?>
     
    <table border=1>
    <tr>
    <td>sdsd</td><td>skjflsjl</td>
    </tr>
    <?php 
    echo date('H:i:s').' - debut';
    for ($i = 0; $i < $nbsheets; $i++) {
     
    ?>
    <tr>
    <td><?php echo $i; ?></td><td><?php echo $name_sheet[$i];?></td>
    <td><?php
     
    $objWriter = PHPExcel_IOFactory::createWriter($excel, 'CSV')->setDelimiter(';')
                                                                      ->setEnclosure('')
                                                                      ->setLineEnding("\r\n")
                                                                      ->setSheetIndex($i)
                                                                      ->save($name_sheet[$i].'_essai.csv');
     
    ?>                                                                                                                                                                                                                                                       
     
    </td>
    </tr>
     
    <?php } 
     
    echo date('H:i:s').' - fin ';
    ?>
     
    </table>
    </body>
    </html>

  8. #8
    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
    Fiou j'ai eu du mal a la voir celle la : tu as mis $object au lieu de $objet.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    bien joué , c'est de ma faute, gros benet que je suis ... bin oui objet..

    par contre je comprends pas pourquoi ça fonctionne avec une chaine fixe pourquoi il n'y a pas de message d'erreur?

    et bien un très grand merci, dire que ca fait 3 jours que je cherche

    y reste plus qu'a placer la discussion en résolu

  10. #10
    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
    Sur la ligne de la chaine fixe tu avais la bonne variable.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    +1 je joue les benets juqu'au bout

    un grand merci pour ton aide

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

Discussions similaires

  1. Exécuter macro avec nom du fichier ouvert : prob de variable
    Par supernati27 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 19/05/2011, 13h43
  2. [Débutant] boucle avec nom de fichier variable
    Par membreComplexe12 dans le forum MATLAB
    Réponses: 2
    Dernier message: 09/05/2011, 18h53
  3. Sauvegarde avec nom de fichier venant d'une cellule
    Par sebdub00 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 22/12/2008, 18h07
  4. Url avec nom de fichier contenant un espace
    Par kanabzh29 dans le forum Langage
    Réponses: 3
    Dernier message: 07/10/2008, 13h14
  5. Appel d'une fonction C avec nom de fichier en paramètre
    Par vince3320 dans le forum Fortran
    Réponses: 4
    Dernier message: 21/11/2006, 14h58

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