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 boucle php


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 70
    Points : 61
    Points
    61
    Par défaut PHPExcel boucle php
    Bonsoir,

    Je pense avoir un problème de boucle.
    je voudrai afficher les résultats d'une requête et en même temps proposer de télécharger les résultats dans un fichier excel

    Ce qui fonctionne :
    la requête
    la génération et l'affichage du tableau
    la création et l'enregistrement du fichier .xlsx

    Ce qui ne fonctionne pas :

    dans le fichier xlsx j'ai q'une seule ligne de résultat d'enregistré
    si vous pouviez m'aider

    Merci

    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
    99
    100
    101
    102
    103
    104
    <?php
    include("./config/config.inc.php");
    include './Classes/PHPExcel.php';
    include './Classes/PHPExcel/Writer/Excel2007.php';
    // Variable pour fichier excel
    $workbook = new PHPExcel;
    $sheet = $workbook->getActiveSheet();
    $sheet->getColumnDimension('A')->setAutoSize(true);
    $sheet->getColumnDimension('B')->setAutoSize(true);
    $sheet->getColumnDimension('C')->setAutoSize(true);
    $sheet->getColumnDimension('D')->setAutoSize(true);
    $sheet->getColumnDimension('E')->setAutoSize(true);
    $sheet->getColumnDimension('F')->setAutoSize(true);
    $sheet->getColumnDimension('G')->setAutoSize(true);
    $sheet->getColumnDimension('H')->setAutoSize(true);
    $sheet->getColumnDimension('I')->setAutoSize(true);
    $styleA1 = $sheet->getStyle('A1');
    $styleFont = $styleA1->getFont()
    ->applyFromArray(array(
        'bold'=>true,
        'size'=>11,
        'name'=>'Arial',
        'color'=>array(
        'rgb'=>'000000')));
    $sheet->duplicateStyle($styleA1,'A1:J1');
     
    $sql1.=" ORDER BY field_1 DESC,field_2 ASC, field_3 ASC"; 
    $requete = mysql_query($sql1, $cnx) or die('Erreur SQL !'.$sql1.'<br>'.mysql_error());
     // Traitement
    $nb = mysql_num_rows($requete);
    if ($nb >=1){
        echo ('<img style="border:0;" alt="Sauvegarder" src="./pages/regie/media/save.png"><a style="text-decoration:none;" href=\'/backups/regie/' . 'export' . '_' . date('dmY_h_i') . '.xlsx' . '\'> Sauvegarder</a>');
        echo '<table cellpadding="0" cellspacing="0" id="tableprint" width="100%">';
        echo '<tr class="tdexport"><td></td><td>Versé le</td><td>Dans l\'espace</td><td>Nature</td><td>Civ.</td><td>Prénom</td><td>Nom</td><td>Prix</td><td>En</td></tr>';
     
    $sheet1 = 0; 
    while($data = mysql_fetch_array($requete))
            {
     
            $field_0 = mysql_real_escape_string(stripcslashes(utf8_decode($data['field_0'])));
            $field_1 = mysql_real_escape_string(stripcslashes(utf8_decode(date('d/m/Y', strtotime($data['field_1'])))));
            $field_2 = mysql_real_escape_string(stripcslashes(utf8_decode($data['field_2'])));
            $field_3 = mysql_real_escape_string(stripcslashes(utf8_decode($data['field_3'])));
            $field_4 = mysql_real_escape_string(stripcslashes(utf8_decode($data['field_4'])));
            $field_5 = mysql_real_escape_string(stripcslashes(utf8_decode($data['field_5'])));
            $field_6 = mysql_real_escape_string(stripcslashes(utf8_decode($data['field_6'])));
            $field_7 = mysql_real_escape_string(stripcslashes(utf8_decode($data['field_7'])));
            $field_8 = mysql_real_escape_string(stripcslashes(utf8_decode($data['field_8'])));
            $field_9 = mysql_real_escape_string(stripcslashes(utf8_decode($data['field_9'])));
     
            echo'<tr class="trexport">';
                if (isset($data['field_9']) && !empty($data['field_9'])) 
                    echo'<td class="someClass" title="Commentaire : '.$data['field_9'].'" style="text-align:center;">
                            <img border=0 width=12 height=12 src="pages/regie/media/tip.png">
                        </td>';
                if (empty($data['field_9'])) echo'<tr class="trexport"><td></td>';
                    echo'<td class="trexport" style="text-align:center;">'.date("d/m/Y", strtotime($data['field_1'])).'</td>
                    <td class="trexport">'.$data['field_2'].'</td>
                    <td class="trexport">'.$data['field_3'].'</td>
                    <td class="trexport">'.$data['field_4'].'</td>
                    <td class="trexport">'.$data['field_5'].'</td>
                    <td class="trexport">'.$data['field_6'].'</td>
                    <td class="trexport" style="text-align:right;">'.$data['field_7'].' €</td>
                    <td class="trexport" style="text-align:center;">'.$data['field_8'].'</td>
                </tr>';
     
            $datarow=2;
     
            if($sheet1) $workbook->createSheet();
            $workbook->setActiveSheetIndex($sheet1);
            $sheet->setCellValue('A1','Par');
            $sheet->setCellValue('B1','Versé le');
            $sheet->setCellValue('C1','Dans l\'espace');
            $sheet->setCellValue('D1','Nature');
            $sheet->setCellValue('E1','Civilité');
            $sheet->setCellValue('F1','Prénom');
            $sheet->setCellValue('G1','Nom');
            $sheet->setCellValue('H1','Prix');
            $sheet->setCellValue('I1','Versé en');
            $sheet->setCellValue('J1','Commentaires');
     
            extract($data); 
     
            $sheet->getCell('A'.$datarow)->setValue($field_0); 
            $sheet->getCell('B'.$datarow)->setValue($field_1); 
            $sheet->getCell('C'.$datarow)->setValue($field_2); 
            $sheet->getCell('D'.$datarow)->setValue($field_3); 
            $sheet->getCell('E'.$datarow)->setValue($field_4); 
            $sheet->getCell('F'.$datarow)->setValue($field_5); 
            $sheet->getCell('G'.$datarow)->setValue($field_6); 
            $sheet->getCell('H'.$datarow)->setValue($field_7); 
            $sheet->getCell('I'.$datarow)->setValue($field_8); 
            $sheet->getCell('J'.$datarow)->setValue($field_9); 
            $datarow++;
            }        
     
            $workbook->setActiveSheetIndex(0);
            $writer = new PHPExcel_Writer_Excel2007($workbook);
            $writer->setOffice2003Compatibility(true);
            $records = './backups/regie/' . 'export' . '_' . date('dmY_h_i') .'.xlsx';
            $writer->save($records);
     
        echo '</table><br />';
    ?>

  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
    A chaque tour de boucle tu remets $datarow à 2.

    Cette ligne, ainsi que la définition des colonnes de titre devraient être avant la boucle.

    Je ne vois pas a quoi sert $sheet1 non plus.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 70
    Points : 61
    Points
    61
    Par défaut
    Merci sabotage

    Effectivement sheet1 ne sert à rien donc suppr

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

Discussions similaires

  1. Problème de boucles Php/mysql
    Par Atwight dans le forum Requêtes
    Réponses: 4
    Dernier message: 24/08/2006, 16h44
  2. [Smarty] Affectation dans une boucle PHP
    Par Invité dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 22/08/2006, 10h30
  3. [MySQL] boucles php et 2 requêtes
    Par zimotep dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 29/01/2006, 15h01
  4. Réponses: 4
    Dernier message: 17/01/2006, 20h17
  5. [Performance] LEFT JOIN vs SELECT dans une boucle (PHP)
    Par frochard dans le forum Requêtes
    Réponses: 4
    Dernier message: 28/10/2005, 18h45

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