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 de feuilles


Sujet :

Bibliothèques et frameworks PHP

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 32
    Par défaut [Excel] Génération de feuilles
    Bonjour,

    Je dois réaliser des extraction de requêtes sur une base oracle via php afin d'afficher le résultat dans une feuille Excel.

    Pour cela, j'ai utilisé la librairie php_writeexcel qui fonctionne plutôt bien. Cependant, dans une certaine partie de l'application, les requêtes s'affichent mal dans le fichier Excel. Je ne comprends vraiment pas pourquoi, c'est peut être un problème d'encodage mais ce qui m'étonne c'est que dans la partie admin tout marche bien.

    Je vous montre ma fonction qui permet de générer le fichier Excel :

    A savoir que $requete est le code SQL de la requête, et $libelle le libelle de la requête.

    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
    function afficherRequete($requete,$libelle)
        { 
          $fname = tempnam("/tmp", $libelle.".xls"); //Nom du fichier .xls qui va être généré
          $workbook = &new writeexcel_workbook($fname); //On créé le fichier xls
          $worksheet = &$workbook->addworksheet(); //On ajoute un worksheet
          $heading =& $workbook->addformat(array('align' => 'center', 'bold' => 1)); //On défini un format
     
          set_time_limit(300000000); //Eviter que la requete se bloque si elle dure trop longtemps
          $result = array();
          $req = oci_parse($this->connect, $requete); //On parse la requete
          $curseur = oci_execute($req); //On execute la requete
     
          $nrows = oci_fetch_all($req, $results); //On récupère le nombre de résultats
     
          $i=0;
          foreach ($results as $key => $val) //On récupère toutes les valeurs du résultat de la requête
          {
              $worksheet->write(0,$i,$key,$heading);
    		  //echo $i.' | '.$key.' | '.$heading.'<br>';
              $i++;
          }
     
    		$header =& $workbook->addformat();
    		$header->set_align('left');
     
          for ($i = 0; $i < $nrows; $i++) 
          {
              $j=0;
              foreach ($results as $data) 
              {
                  $worksheet->write($i+1,$j,$data[$i],$header);
                  //echo $data[$i].'<br>';
    			  $j++;
              }
          } 
     
          $workbook->close();
     
          header("Content-Type: application/x-msexcel; name=\"".$libelle.".xls\"");
          header("Content-Disposition: inline; filename=\"".$libelle.".xls\"");
          $fh=fopen($fname, "rb");
          fpassthru($fh);
          unlink($fname);
        }

    Et donc voici le type de fichiers Excel que génère cette fonction : (voir pièce jointe)

    On voit donc que malgré le fait que ça soit très mal encodé. Les données sont là. La requête est donc bien effectuée c'est à l'affichage que ça merde.

    Voilà donc si vous avez des idées car depuis hier je bloque. Je peux vous fournir d'autres partie de code si nécessaire, n'hésitez pas à me demander.

    En vous remerciant d'avance
    Images attachées Images attachées  

Discussions similaires

  1. [VBA] [Excel] Selection des feuilles
    Par KOFJCH dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 15/12/2005, 18h18
  2. [EXCEL] copier une feuille sans changer les liaisons
    Par DidRocks dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 09/09/2005, 13h29
  3. Réponses: 5
    Dernier message: 05/07/2005, 20h25
  4. [EXCEL] Passer une feuille en majuscule
    Par Isa31 dans le forum Excel
    Réponses: 14
    Dernier message: 29/04/2005, 07h09
  5. [VBA-E] [Excel] Effacer une feuille
    Par Tray dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 31/01/2003, 10h04

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