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. #41
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 497
    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 497
    Points : 12 600
    Points
    12 600
    Par défaut
    Juste en passant, j'ai pas vérifier, mais j'aurais tendance à tester ceci, suivant ton exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $celulle = ($col -5).$lig;
    $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($col, $lig, '=+SI('.$celulle.'="";0;$E2)');

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

    Informations forums :
    Inscription : Novembre 2009
    Messages : 15
    Points : 12
    Points
    12
    Par défaut
    Bjr,

    J'avais envisagé ce genre de montage, le soucis c'est que dans ce cas la variable $celulle est égale à 410 par exemple à la 4eme colonne de la ligne 10.

    410, dans la formule, ca ne passe pas (apache se plante) puisque la formule attend une coordonée comme D10, mais en écrivant cette réponse je me rends compte que la colonne de référence ne varie pas et je peux donc redéfinir les variables $celulle comme cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $celulle = "G".$lig;
    $celulle2="E".$lig;
    $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow("$col", "$lig", '=IF(('.$celulle.')="";0;'.$celulle2.')');
    Et là Bingo !, merci pour la reflexion MaitrePylos.

    Au passage, j'avais lû dans une doc que PhpExcel ne comprenait que l'anglais dans les formules, j'ai testé avec IF et avec SI, cela passe dans les deux cas.

    @+

    Didier

  3. #43
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 497
    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 497
    Points : 12 600
    Points
    12 600
    Par défaut
    Pour les fonction cela dépend de la version Excel installer, l'anglais fonctionnera partout

    Et puisque je sais qu'un jour tu en auras besoin, voici une petite fonction sympathique

    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
     
    function remplaceColonne ($num) {
            $remplace = array(
     
                0 => 'A' ,
                1 => 'B' ,
               2=> 'C' ,
               3=> 'D' ,
               4 => 'E' ,
               5 => 'F' ,
               6 => 'G' ,
               7 => 'H' ,
               8=> 'I' ,
               9 => 'J' ,
               10 => 'K' ,
                11 => 'L' ,
                12=> 'M' ,
                13 => 'N' ,
                14 => 'O' ,
                15 => 'P' ,
                16 => 'Q' ,
                17 => 'R' ,
                18 => 'S' ,
                19 => 'T' ,
                20=> 'U' ,
                21 => 'V' ,
                22=> 'W' ,
                23=> 'X' ,
                24=> 'Y' ,
                25 => 'Z' 
            );
            $retour = strtr($num, $remplace);
            return $retour;
        }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $celulle = remplaceColonne(($col -5)).$lig;

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

    Informations forums :
    Inscription : Novembre 2009
    Messages : 15
    Points : 12
    Points
    12
    Par défaut
    Alors là MaitrePylos, t'es vraiment au-dessus de la pyramide !

    Merci

    Didier

  5. #45
    Invité
    Invité(e)
    Par défaut
    Bonjour à tous !

    PHPExcel est vraiment très bien (j'utilisais auparavant PEAR), mais... qu'est-ce qu'il est lent ! Un fichier que PEAR me générait en 5 secondes, je l'obtiens avec PHPExcel en une bonne trentaine de secondes !!!

    J'espère vraiment qu'ils vont améliorer ça, parce que là, pour l'utiliser en prod sur des gros fichiers...

  6. #46
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 497
    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 497
    Points : 12 600
    Points
    12 600
    Par défaut
    Je dois bien avouer, que j'ai plusieurs génération prenant au moins 6 minutes, mais c'est de très gros fichier

  7. #47
    Invité
    Invité(e)
    Par défaut
    En passant, mis à part PHPExcel, qu'est-ce qui existe d'autre qui ait des fonctionnalités assez avancées et qui soit encore un projet actif niveau développement (pas comme Spreadsheet Excel Writer) ? Et si possible plus rapide que PHPExcel...

  8. #48
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 15
    Points : 12
    Points
    12
    Par défaut
    Hello,

    Probleme avec les formules.

    Pour résumer, dès que je veux faire une somme de cellules qui contiennent elles-memes des formules, ca plante.

    Explication :

    J'ai une celulle en colonne J sur la ligne "x" qui affiche la valeur de la colonne G de la ligne "x" si la colonne H de la ligne "x" contient quelque chose, soit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    //ecriture de la celulle CusP 
    $datepaycustom = "G".$lig;
    $montantinvoice="E".$lig;
    $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow("$col","$lig",'=if('.$datepaycustom.'="";0;'.$montantinvoice.')');
    $col=$col+1;
    Ca fonctionne très bien.

    En revanche dès je que veux calculer la somme de la colonne J, soit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $dernligne=$lig;// recupere le numero de la derniere ligne de la liste
     
    ...
    Affichage des colonnes
    ...
     
    $lig=$dernligne+4; // emplacement de l'affichage de la somme
    $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(0, "$lig", 'Total Customer Payment');// titre de la colonne
    $celullefin = "J".$dernligne;//determine la celulle de fin de la somme
    $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(1, "$lig", '=SUM(J2:'.$celullefin.')');
    J'obtiens cette erreur :

    _raiseFormulaError message is Formula Error: An unexpected error occured

    Fatal error: Uncaught exception 'Exception' with message 'Formula Error: An unexpected error occured' in C:\Program Files\EasyPHP 3.0\www\Alterego\Classes\PHPExcel\Calculation.php:3032 Stack trace: #0 C:\Program Files\EasyPHP 3.0\www\Alterego\Classes\PHPExcel\Calculation.php(2483): PHPExcel_Calculation->_raiseFormulaError('Formula Error: ...') #1 C:\Program Files\EasyPHP 3.0\www\Alterego\Classes\PHPExcel\Calculation.php(1935): PHPExcel_Calculation->_parseFormula('if(G2="";0;E2)') #2 C:\Program Files\EasyPHP 3.0\www\Alterego\Classes\PHPExcel\Calculation.php(1802): PHPExcel_Calculation->_calculateFormulaValue('=if(G2="";0;E2)', 'J2', Object(PHPExcel_Cell)) #3 C:\Program Files\EasyPHP 3.0\www\Alterego\Classes\PHPExcel\Cell.php(301): PHPExcel_Calculation->calculateCellValue(Object(PHPExcel_Cell), false) #4 C:\Program Files\EasyPHP 3.0\www\Alterego\Classes\PHPExcel\Calculation.php(2726): PHPExcel_Cell->getCalculatedValue(false) #5 C:\Program Files\EasyPHP 3.0\www\Alterego\Classes\PHPExcel\Calculation.php(1935): PHPExcel_Calcul in C:\Program Files\EasyPHP 3.0\www\Alterego\Classes\PHPExcel\Calculation.php on line 3032

    Il trouve une erreur dans la formule qui remplit la colonne si je lui demande de calculer la somme de ces formules alors que si je ne lui demande pas de faire cette somme, cela focntionne.

    Dans ce même fichier j'obtiens sans soucis des sommes de colonnes diverses qui ne sont que des celulles sans formules, c'est pourquoi je m'oriente vers un probleme de calcul de somme de celulles contenant des formules.

    Là je suis perdu après avoir essayer pas mal de variantes et j'implore de l'aide.

    Didier

  9. #49
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 497
    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 497
    Points : 12 600
    Points
    12 600
    Par défaut
    essaye ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $lig=$dernligne+4; // emplacement de l'affichage de la somme
    $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(0, $lig, 'Total Customer Payment');// titre de la colonne
    $celullefin = "J".$dernligne;//determine la celulle de fin de la somme
    $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(1, $lig, '=SUM(J2:'."'$celullefin'".')');

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

    Informations forums :
    Inscription : Novembre 2009
    Messages : 15
    Points : 12
    Points
    12
    Par défaut
    slt,

    j'ai essayé, j'obtiens ce message :

    _raiseFormulaError message is Formula Error: An unexpected error occured

    Fatal error: Uncaught exception 'Exception' with message 'Formula Error: An unexpected error occured' in C:\Program Files\EasyPHP 3.0\www\Alterego\Classes\PHPExcel\Calculation.php:3032 Stack trace: #0 C:\Program Files\EasyPHP 3.0\www\Alterego\Classes\PHPExcel\Calculation.php(2483): PHPExcel_Calculation->_raiseFormulaError('Formula Error: ...') #1 C:\Program Files\EasyPHP 3.0\www\Alterego\Classes\PHPExcel\Calculation.php(1935): PHPExcel_Calculation->_parseFormula('SUM(J2:'J9')') #2 C:\Program Files\EasyPHP 3.0\www\Alterego\Classes\PHPExcel\Calculation.php(1802): PHPExcel_Calculation->_calculateFormulaValue('=SUM(J2:'J9')', 'B13', Object(PHPExcel_Cell)) #3 C:\Program Files\EasyPHP 3.0\www\Alterego\Classes\PHPExcel\Cell.php(301): PHPExcel_Calculation->calculateCellValue(Object(PHPExcel_Cell), true) #4 C:\Program Files\EasyPHP 3.0\www\Alterego\Classes\PHPExcel\Worksheet.php(621): PHPExcel_Cell->getCalculatedValue() #5 C:\Program Files\EasyPHP 3.0\www\Alterego\Classes\PHPExcel\Writer\Excel5\Worksheet.php(385): PHPExcel_Workshe in C:\Program Files\EasyPHP 3.0\www\Alterego\Classes\PHPExcel\Calculation.php on line 3032


    J'ai essayé sans les apostrophes, j'obtiens le premier message d'erreur.

    J'ai également essayé en utilisant les fonctions "getcell --> getValue()" ou encore "getcell--> getCalculatedValue()", cela fonctionne très bien sur des celulles sans formule mais dès que l'on tape sur une celulle avec formule j'obtiens le message d'erreur. Il doit bien y avoir une moyen de faire des calculs sur des celulles contenant des formules !?!?

    Didier

  11. #51
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 497
    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 497
    Points : 12 600
    Points
    12 600
    Par défaut
    ceci ne fonctionne pas donc ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $valA = $objPHPExcel->getActiveSheet()->getCell('J2')->getCalculatedValue();
    $valB = $objPHPExcel->getActiveSheet()->getCell("'$celullefin'")->getCalculatedValue();
    $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(1, $lig, '=('.$valA.'+'.$valB.')');

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

    Informations forums :
    Inscription : Novembre 2009
    Messages : 15
    Points : 12
    Points
    12
    Par défaut
    J'obtiens tjrs :

    J9_raiseFormulaError message is Formula Error: An unexpected error occured

    Fatal error: Uncaught exception 'Exception' with message 'Formula Error: An unexpected error occured' in C:\Program Files\EasyPHP 3.0\www\Alterego\Classes\PHPExcel\Calculation.php:3032 Stack trace: #0 C:\Program Files\EasyPHP 3.0\www\Alterego\Classes\PHPExcel\Calculation.php(2483): PHPExcel_Calculation->_raiseFormulaError('Formula Error: ...') #1 C:\Program Files\EasyPHP 3.0\www\Alterego\Classes\PHPExcel\Calculation.php(1935): PHPExcel_Calculation->_parseFormula('if(G2="";0;E2)') #2 C:\Program Files\EasyPHP 3.0\www\Alterego\Classes\PHPExcel\Calculation.php(1802): PHPExcel_Calculation->_calculateFormulaValue('=if(G2="";0;E2)', 'J2', Object(PHPExcel_Cell)) #3 C:\Program Files\EasyPHP 3.0\www\Alterego\Classes\PHPExcel\Cell.php(301): PHPExcel_Calculation->calculateCellValue(Object(PHPExcel_Cell), true) #4 C:\Program Files\EasyPHP 3.0\www\Alterego\admin\commandelist.php(199): PHPExcel_Cell->getCalculatedValue() #5 {main} thrown in C:\Program Files\EasyPHP 3.0\www\Alterego\Classes\PHPExcel\Calculation.php on line 3032

    avec ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $celullefin = "J".$dernligne; echo $celullefin;
    $valA = $objPHPExcel->getActiveSheet()->getCell('J2')->getCalculatedValue();echo "   ";echo $valA;
    $valB = $objPHPExcel->getActiveSheet()->getCell("'$celullefin'")->getCalculatedValue();
    $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(1, $lig, '=('.$valA.'+'.$valB.')');
    J'ai ajouté des "echo" pour tracer et $valA n'apparait pas, seule $celullefin s'affiche.
    Pour info, cette technique est ok sur une colonne de celulle sans formules, bien qu'elle ne me donne que l'addition de la premiere celulle + la derniere celulle, on peut au moins en recuperer les valeurs.

  13. #53
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 497
    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 497
    Points : 12 600
    Points
    12 600
    Par défaut
    Dans ta formule ici

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ('=if(G2="";0;E2)'
    Il ne manque pas un '$' ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ('=if(G2="";0;$E2)'

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

    Informations forums :
    Inscription : Novembre 2009
    Messages : 15
    Points : 12
    Points
    12
    Par défaut
    J'avais déjà essayé avec le $ devant la colonne, même avec un $ devant la ligne également car j'ai mon excel de base qui fonctionne avec : =+SI(F62="";0;$C$62).

    Le $ devant la colonne permet d'avoir une valeur absolue par rapport à la celulle affichant le résultat. Dans mon cas, je n'ai besoin que d'une valeur relative à la celulle de résultat.

    PHPExcel_Calculation->_parseFormula('if(G2="";0;$E$2...')

    Dans les deux cas j'ai :

    _raiseFormulaError message is Formula Error: An unexpected error occured

    Fatal error: Uncaught exception 'Exception' with message 'Formula Error: An unexpected error occured' in C:\Program Files\EasyPHP 3.0\www\Alterego\Classes\PHPExcel\Calculation.php:3032 Stack trace: #0 C:\Program Files\EasyPHP 3.0\www\Alterego\Classes\PHPExcel\Calculation.php(2483): PHPExcel_Calculation->_raiseFormulaError('Formula Error: ...') #1 C:\Program Files\EasyPHP 3.0\www\Alterego\Classes\PHPExcel\Calculation.php(1935): PHPExcel_Calculation->_parseFormula('if(G2="";0;$E$2...') #2 C:\Program Files\EasyPHP 3.0\www\Alterego\Classes\PHPExcel\Calculation.php(1802): PHPExcel_Calculation->_calculateFormulaValue('=if(G2="";0;$E$...', 'J2', Object(PHPExcel_Cell)) #3 C:\Program Files\EasyPHP 3.0\www\Alterego\Classes\PHPExcel\Cell.php(301): PHPExcel_Calculation->calculateCellValue(Object(PHPExcel_Cell), true) #4 C:\Program Files\EasyPHP 3.0\www\Alterego\admin\commandelist.php(200): PHPExcel_Cell->getCalculatedValue() #5 {main} thrown in C:\Program Files\EasyPHP 3.0\www\Alterego\Classes\PHPExcel\Calculation.php on line 3032

    Je pourrais m'en sortir en faisant faire les calculs par php et en ne faisant afficher que des valeurs par PhpExcel mais dans cela rend toute modification utlerieure de la feuille Excel impossible puisque aucune formule ne sera présente sur la feuille.

    J'ai parcouru tous les fichiers exemples du dossier test du pack PhpExcel, il est evident que l'on peut effectuer des calculs sur des celulles contenant des formules, mais je n'ai pas trouvé d'exemple avec IF. Cette fonction est pourtant présente dans le fichier calculation.php ([145] => IF).

    En parcourant calculation.php je me retrouve sur le fichier functions.php et j'y ai trouvé ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public static function STATEMENT_IF($condition = true, $returnIfTrue = 0, $returnIfFalse = False)
    Ca ne ressemble pas à la syntaxe d'Excel... là je me rends compte que ce sont des virgules qui séparent les arguments dans la fonction !!! Alors que ce sont des points-virgules dans Excel --> le Piège

    Ca marche nickel avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow("$col","$lig",'=IF('.$datepaycustom.'="",0,'.$montantinvoice.')');
    puis pour l'affichage de la somme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $lig=$dernligne+5;//montant total des factures payées au prestataire
    $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(0, "$lig", 'Total Contractor Payment');
    $celullefin = "K".$dernligne; echo $celullefin;
    $celulleresultat="B".$lig;echo "   ";echo $celulleresultat;
    $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(1, $lig, '=SUM(K2:'.$celullefin.')');

    Merci de ton aide MaitrePylos, Rdv au prochain piège !

    Didier

  15. #55
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 497
    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 497
    Points : 12 600
    Points
    12 600
    Par défaut
    Et bien voilà, on devrais peut-être reprendre tout les exemples et compléter le tuto

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

    Informations forums :
    Inscription : Novembre 2009
    Messages : 15
    Points : 12
    Points
    12
    Par défaut
    Libre à toi d'utiliser mon code pour faire une petite page d'exemple de conditions.
    Je peux à l'occasion te la faire.

    @+

    Didier

  17. #57
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 497
    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 497
    Points : 12 600
    Points
    12 600
    Par défaut
    Citation Envoyé par imagipop Voir le message
    Libre à toi d'utiliser mon code pour faire une petite page d'exemple de conditions.
    Je peux à l'occasion te la faire.

    @+

    Didier
    J'accepte la proposition

  18. #58
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 497
    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 497
    Points : 12 600
    Points
    12 600
    Par défaut
    Bonjour,

    Pouvons-nous voir ce que vous avez déjà réalisé, afin de mieux se rendre compte de votre problème ?

  19. #59
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 497
    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 497
    Points : 12 600
    Points
    12 600
    Par défaut
    Bonjour,

    Alors pour être compris, quand vous mettez du code mettez le entre balise code le bouton #, c'est plus clair pour tout le monde.

    Je viens de tester votre code il fonctionne parfaitement, je vous le remet au cas ou

    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
     
    require_once '../Classes/PHPExcel.php';
    require_once '../Classes/PHPExcel/Writer/Excel5.php';
     
    $workbook = new PHPExcel();
     
    $sheet = $workbook->getActiveSheet();
    $sheet->setCellValue('A1','fichier');
     
    $writer = new PHPExcel_Writer_Excel5($workbook);
    $records = 'fichier.xls';
    $writer->save($records);
    unset($workbook);
     
    ob_clean();
     
    header('Content-type: application/vnd.ms-excel');
    header('Content-Disposition:inline;filename=Fichier.xls ');
    $writer->save('php://output');
    Le seule souci est que vous l'enregister et l'envoyer au navigateur (c'est peut-être fait exprès !).

    Maintenant vous nous dite que avant vous mettiez du code HTML dans ce fichier, donnez- nous un exemple de code html (on verra le SQL après).


    Dernière question de ma part, le code HTML que vous allez nous fournir, doit-il être également afficher sur le navigateur ?

  20. #60
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 497
    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 497
    Points : 12 600
    Points
    12 600
    Par défaut
    Un fichier Excel avec phpExcel se construit à la ligne et c'est là toute la puissance de phpExcel, ce que je vous propose c'est d'afficher le fichier HTML, ensuiite de créer une classe qui créera le fichier Excel!

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