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 :

[Excel] Génération d'un fichier excel


Sujet :

Bibliothèques et frameworks PHP

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 9
    Points : 6
    Points
    6
    Par défaut [Excel] Génération d'un fichier excel
    Bonjour à tous,

    Situation :

    j'ai 2 éléments : ma page de 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
    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
     
     
    <?php
    include"connection.php";
     
    $query = "SELECT ANAENT.ANCLEUNIK, ANADET.CODMES, ANAENT.DATANA, ANAENT.LIEUPRE, ANADET.VALEUR  
    FROM ANAENT LEFT JOIN ANADET ON ANAENT.ANCLEUNIK = ANADET.ANCLEUNIK
    WHERE  
    ANAENT.CODAR = 'SANG' AND 
    ANAENT.CODSOC = 'ABA' AND 
    ANAENT.DATANA between 20070101 AND 20080101";
     
    $result = odbc_exec($connection, $query);
    if ($result == 0){
    	echo ("<b>Erreur ".odbc_error().": ".odbc_errormsg()."</b>");}
    	elseif (odbc_num_rows($result) == 0){
    		echo ("<b>Requete executée, mais vide</b>");}
    		else{
    			$col = array();
    			$tab = array();
    			while(odbc_fetch_into($result, $prod)!= FALSE){
     
    				$ANCLEUNIK    = $prod[0];
    				$CODMES   = $prod[1];
    				$DATE = $prod[2];
    				$LIEU = $prod[3];
    				$VALEUR = $prod[4];
    				// test existence colone
    				if (!isset($col[$CODMES])) {
    					$col[$CODMES] = $CODMES;
    				}
     
    				$tab[$ANCLEUNIK][$DATE][$LIEU][$CODMES] = $VALEUR;
     
    			}
    			odbc_close($connection);
     
    			echo '<table border = 1>';
    			// Ligne Titres
    			echo '<tr>';
    			echo '<td>ANCLEUNIK</td>';
    			echo '<td>DATE</td>';
    			echo '<td>LIEU</td>';
    			foreach ($col as $kcol => $colone)
    			{
    				echo '<td>' . $colone . '</td>';
    			}	
    			echo '</tr>';
    			foreach ($tab as $klig => $ligne)
    			{
    				echo '<tr>';
    				echo '<td>' . $klig .'</td>';
    				foreach ($ligne as $kligbis => $lignebis){
    					echo '<td>' . $kligbis .'</td>';
    				}
    				foreach ($lignebis as $kligbisbis => $lignebisbis){
    					echo '<td>' . $kligbisbis .'</td>';
    				}
    				foreach ($col as $kcol => $colone)
    				{
    					if (isset($tab[$klig][$kligbis][$kligbisbis][$kcol]))
    					{
    						echo '<td>' . $tab[$klig][$kligbis][$kligbisbis][$kcol] .'</td>';
    					}
    					else
    					{
    						echo '<td>&nbsp;</td>';
    					}
    				}
    				echo '</tr>';
    			}
    			echo '</table>';
    		}
     
    ?>
    et les bibliothèque de write excel.

    Comment dois-je utiliser les bibliothèque de write excel dans ma page de code pour générer le tableau créer par ma page de code --> voir image tableau :
    Images attachées Images attachées  

  2. #2
    Membre habitué Avatar de guiyomh
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    328
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 328
    Points : 155
    Points
    155
    Par défaut
    pourkoi tu te prend la tête avec un bibliothèque excel ?

    gènère juste un fichier csv et envoit le bon header :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header ("Content-type: application/excel");
    aujourd'hui excel lit très bien les fichier csv.

    tu fait un truc comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <?php
    header ("Content-type: application/excel");
     
    echo "champ1;champ2;champ3;champ4;\r\n";
    echo "libelle1;100;2;19.6;200;\r\n";
    echo "libelle2;200;2;19.6;400;\r\n";
    echo "libelle3;600;2;19.6;1200;\r\n";
    ?>

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    J'ai trouvé une autre solution, expliqué sur le site du créateur de writeexcel, merci de ton aide quand même guiyomh.

  4. #4
    Futur Membre du Club
    Inscrit en
    Mars 2008
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Bonjour,

    J'ai le même souci. J'avais implémenté la solution proposée par guiyomh avant de venir voir ici, et mon problème est que quand j'ouvre le fichier dans excel, chaque ligne n'est contenue que dans une seule cellule, alors que je voudrais que chaque élément séparé par un point-virgule apparaisse dans une cellule différente.

    Voilà mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $strCSV = "Numéro;Groupe;Utilisateur\n";
     
    foreach($my_array as $ligne) {
    <div style="margin-left:40px">$strCSV .= "$ligne['var1'];$ligne['var2'];$ligne['var3']\n";</div>}
    Et ensuite mon code côté interface :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    header("Content-type: application/vnd.ms-excel");
    header("Content-disposition: attachment; filename=fichierTest.csv");
     
    print $strCSV;
    Voilà le résultat sous excel :



    J'utilise Excel 2000.

    D'après vous d'où vient le problème ?

    Merci

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

Discussions similaires

  1. [AC-2007] Supprimer la génération d'un fichier Excel Xlk
    Par lio33 dans le forum VBA Access
    Réponses: 1
    Dernier message: 19/06/2013, 19h32
  2. Réponses: 2
    Dernier message: 21/11/2011, 11h39
  3. [VxiR2] Génération d'un fichier excel
    Par DevFranck dans le forum Webi
    Réponses: 5
    Dernier message: 28/10/2010, 11h33
  4. génération d'un fichier Excel
    Par étoile de mer dans le forum ASP.NET
    Réponses: 2
    Dernier message: 24/04/2007, 13h18
  5. Réponses: 22
    Dernier message: 28/03/2006, 14h59

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