PHP vers excel

Rhoda -  
 momozizou -
Bonjour,

je travaille avec easyphp 1.7 et je souhaiterais afficher les resultats de requete sur une feuille excel. Sur le net, j'ai trouvé un outil xls magique qui fait ce transfert mais malheureusement ça ne marche que pour easyphp 1.5 et 1.6. Pourriez vous m'indiquer des outils à utiliser et n'oubliez pas d'indiquer briévement le mode d'utilisation. merci

5 réponses

  1. men-of-fire Messages postés 3 Statut Membre 2
     
    Voila l'exemple et il vous vous les bibiothéaue de la classe BiffWriter.

    Si t'en a pas trouvé ces bibiothéque laisse moi ton e-mail pour te les envoyées.

    cette exemple marche 100% je l'ai bien téster dans mon application et ca marche a mervielle.

    et si il ya un probléme contact moi.

    <?php

    require_once('Spreadsheet\\Excel\\Writer\\BIFFwriter.php');
    require_once('Spreadsheet\\Excel\\Writer\\Worksheet.php');
    require_once('Spreadsheet\\Excel\\Writer\\Workbook.php');function HeaderingExcel($filename) {
    header("Content-type: application/vnd.ms-excel");
    header("Content-Disposition: attachment; filename=$filename" );
    header("Expires: 0");
    header("Cache-Control: must-revalidate, post-check=0,pre-check=0");
    header("Pragma: public");
    }// HTTP headers
    HeaderingExcel('test.xls');// Creating a workbook
    $workbook = new Spreadsheet_Excel_Writer_Workbook("-");
    $t=& $workbook->addformat();
    $t->setSize(16);
    $t->setAlign('center');
    $t->setColor('red');
    $t->setPattern();

    $title=& $workbook->addformat();
    $title->setSize(12);
    $title->setAlign('center');
    $title->setColor('white');
    $title->setPattern();
    $title->setBgColor('dark');
    $fh=& $workbook->addformat();
    $fh->setSize(10);
    $fh->setAlign('center');
    $fh->setColor('red');
    $fh->setPattern();
    $fh->setBgColor('white');
    // 1ere feille
    $worksheet1 =& $workbook->addworksheet('Liste Tous Les Clients');
    $worksheet1->write(3,4,"Liste De Tous Les Clients",$t);
    $worksheet1->write(5, 2, "Num Client",$fh);
    $worksheet1->write(5, 3, "Nom Client",$fh);
    $worksheet1->write(5, 4, "Prenom Client",$fh);
    $worksheet1->write(5, 5, "Date Naissance",$fh);
    $worksheet1->write(5, 6, "ville",$fh);
    $bitmap="Sans titre.bmp";
    $worksheet1->insertBitmap(10, 10, $bitmap, $x = 0, $y = 0, $scale_x = 1, $scale_y = 1);
    $worksheet1->_positionImage(10, 10, 10, 10, 480, 359);
    $link=mysql_connect('localhost','root','');
    $db=mysql_select_db('gestion_client');
    if(isset($_GET['id'])){
    $sql=$_GET['id'];
    }
    $res=mysql_query($sql);
    $num=mysql_num_rows($res);

    if($res){

    while($row=mysql_fetch_row($res)){

    //pour positionner les donnée dans la feuille
    static $x1=6;
    static $y1=2;
    $worksheet1->write($x1, $y1, "".$row[0],$title);
    $worksheet1->write($x1, $y1+1, "".$row[1],$title);
    $worksheet1->write($x1, $y1+2, "".$row[2],$title);
    $worksheet1->write($x1, $y1+3, "".$row[3],$title);
    $worksheet1->write($x1, $y1+4, "".$row[4],$title);
    $y1=2;
    $x1=$x1+1;
    }
    }

    //2emme fieulle
    $worksheet2 =& $workbook->addworksheet('Rabat');
    $worksheet2->write(3,4,"Liste De Tous Les Clt De Rabat.",$t);
    $worksheet2->write(5, 2, "Num Client",$fh);
    $worksheet2->write(5, 3, "Nom Client",$fh);
    $worksheet2->write(5, 4, "Prenom Client",$fh);
    $worksheet2->write(5, 5, "Date Naissance",$fh);
    $worksheet2->write(5, 6, "ville",$fh);

    $req="select * from client where ville='rabat'";
    $res=mysql_query($req);
    $num=mysql_num_rows($res);

    if($res){

    while($row=mysql_fetch_row($res)){
    static $x2=6;
    static $y2=2;
    $worksheet2->write($x2, $y2, "".$row[0],$title);
    $worksheet2->write($x2, $y2+1, "".$row[1],$title);
    $worksheet2->write($x2, $y2+2, "".$row[2],$title);
    $worksheet2->write($x2, $y2+3, "".$row[3],$title);
    $worksheet2->write($x2, $y2+4, "".$row[4],$title);
    $y2=2;
    $x2=$x2+1;
    }
    }
    //3emme fieulle
    $worksheet3 =& $workbook->addworksheet('casa');
    $worksheet3->write(3,4,"Liste De Tous Les Clt De Casa.",$t);
    $worksheet3->write(5, 2, "Num Client",$fh);
    $worksheet3->write(5, 3, "Nom Client",$fh);
    $worksheet3->write(5, 4, "Prenom Client",$fh);
    $worksheet3->write(5, 5, "Date Naissance",$fh);
    $worksheet3->write(5, 6, "ville",$fh);

    $query="select * from client where ville='casa'";
    $res=mysql_query($query);
    $num=mysql_num_rows($res);

    if($res){

    while($row=mysql_fetch_row($res)){
    static $x3=6;
    static $y3=2;
    $worksheet3->write($x3, $y3, "".$row[0],$title);
    $worksheet3->write($x3, $y3+1, "".$row[1],$title);
    $worksheet3->write($x3, $y3+2, "".$row[2],$title);
    $worksheet3->write($x3, $y3+3, "".$row[3],$title);
    $worksheet3->write($x3, $y3+4, "".$row[4],$title);
    $y3=2;
    $x3=$x3+1;
    }
    }
    //4emme fieulle
    $worksheet4 =& $workbook->addworksheet('sale');
    $worksheet4->write(3,4,"Liste De Tous Les Clt De Sale. ",$t);
    $worksheet4->write(5, 2, "Num Client",$fh);
    $worksheet4->write(5, 3, "Nom Client",$fh);
    $worksheet4->write(5, 4, "Prenom Client",$fh);
    $worksheet4->write(5, 5, "Date Naissance",$fh);
    $worksheet4->write(5, 6, "ville",$fh);
    $ql="select * from client where ville='sale'";
    $res=mysql_query($ql);
    $num=mysql_num_rows($res);

    if($res){

    while($row=mysql_fetch_row($res)){
    static $x4=6;
    static $y4=2;
    $worksheet4->write($x4, $y4, "".$row[0],$title);
    $worksheet4->write($x4, $y4+1, "".$row[1],$title);
    $worksheet4->write($x4, $y4+2, "".$row[2],$title);
    $worksheet4->write($x4, $y4+3, "".$row[3],$title);
    $worksheet4->write($x4, $y4+4, "".$row[4],$title);
    $y4=2;
    $x4=$x4+1;
    }
    }

    $workbook->close();
    ?>

    j'éspére que ca vous aidra.

    Coordialement.

    c'est moi kenchi le vogaband.
    3
    1. chocolatera
       
      salut,

      moi aussi je suis entrain d'exporter une requette vers excel et j'ai utlisé l'objet COM le probleme c'est qu'il marche bien localment il me creer le fichier excel et exporte les donnés tres bien mais quant jé testé en ligne il m'a affiché ce jolie msg :( Class 'Com ' not fund
      aider moi svp
      merci
      0
    2. men-of-fire Messages postés 3 Statut Membre 2 > chocolatera
       
      bonsoir,

      il se peux que ta oublier de mettre les classes et les bibiothéque avec les dossier de ton site web.

      moi j ai jamais essayer de la mettre en ligne més je crois que c est mieux de travailler avec les bibiothéque de BiffWriter c est mieux et c est facile a exploiter.
      -1
    3. chocolatera > men-of-fire Messages postés 3 Statut Membre
       
      salut
      ya pas de dossier a mettre juste tu instancier l'objet com et tu travaille avec ya pas d'autre fichier
      0
    4. chocolatera > chocolatera
       
      salut
      ya personne à me repondre??? :(
      0
    5. Jine
       
      Si j'ai bien compris l'exemple de Laxar utilise l'objet com, utilisable uniquement sous les serveurs utilisant Win32, le second utilise la méthode sylk indépendante de la plateforme. La seconde méthode avec les classe BiffWriter semble être portable et donc plus intéressante à mon avis.
      0
  2. laxar
     
    Bon ben je vais te donner ce code qui te permettra d'ouvrir un fichier excel existant (j'ai aussi la version où tu le crèes toi meme), d'activer la feuille sur la quelle tu veux écrire et d'écrire une variable "php" dans une case donnée. Tu as surement des tableaux alors tu pourras faire tout simplemlent une boucle "for" dessus.
    $FILENAME="C:\FichExcel.xls";
    $excel=new COM("Excel.application");
    $excel->Workbooks->Open($FILENAME);
    //$excel->Visible=1;
    $book=$excel->Workbooks(1);
    $sheet=$book->Worksheets(1);

    //là tu peux faire ta boucle for
    $selcell = $sheet->cells(NumLigne,NumColonne);
    $selcell->activate;
    $selcell->value=$variable;

    $book->Save();
    unset($sheet);
    unset($book);
    $excel->Workbooks->Close();
    $excel->Quit();
    unset($excel);
    1
    1. cha
       
      Bonjour,
      Pourré tu maidé, je dois extraire les données de ma base Mysql vers un fichier excel ou cvs, mé je ne c pa comment my prendre...
      Je ten remercie d'avance.
      0
    2. Pacap
       
      Bonjour laxar,
      Tout dabord ton code marche super bien, seulement ce code fonctionne que lorsque le fichier est déjà créé.
      Car j'ai essayer de faire :

      $FILENAME = "C:\\htdocs\\dev\\mag6\\".$nom.".xls";

      Et ca marche pas.

      Mais avant ton code tu dit que tu as la version permettant de créer soi-même le fichier excel, ce qui serait très pratique pour une génération dynamique du nom du fichier. Donc si tu as moyen de me donner la version de création du fichier excel, ou de me dire ou trouver l'information car je ne trouve nul-part ailleur.

      Merci
      0
    3. shadow
       
      mersi ton aide m'as bcp aider
      0
    4. mosantu
       
      Merci bcp pour ton code. il marche tres bien, mais seulement avec office 2003. sous office 2007, ca ne marche pas. as tu réussi a palier a cela
      0
  3. kenchi
     
    salut,
    si vous avez besoin du code pour générer des fieulle d'xel et méme avec plusier classeurs vous n'avez ka me contacter pour te donner un exemple que j ai réaliser pour vous aidez.
    0
    1. pmichaud
       
      Bonjour
      serait il possible d'avoir votre exemple, je vous remercie d'avance !
      0
      1. kenchi > pmichaud
         
        bonjour,

        ile me faut votre email pour t envoyeias le fichier zip avec exemple d'utilisation que j ai fais.ok
        0
    2. novfoot
       
      Bonjour,

      Je suis très intéressé par un exemple pour créer un fichier excel avec plusieurs onglet en php.
      J'ai fait un essai avec l'objet COM mais j'ai quelques soucis et je ne sais pas comment faire pour afficher le résultat directement dans une page internet (sous IE6).

      C'est assez urgent.

      D'avance Merci.
      0
  4. Anthe
     
    J'ai essayé l'exemple laissé par men-of-fire. ça me donne une page blanche ..

    Quelqu'un aurait-il un code véritablement fonctionnel ?
    0
    1. guelbe
       
      est ce que tu as désactivé ton fire-wall ?
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. isecso Messages postés 4 Statut Membre
     
    salut tous
    si vous avez une réponce à un exportation des données d'une base Oracle vers EXcel via php merci de l'envoyer à ce mail atefbic83@yahoo.fr et merci d'avances .
    -1