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

 Delphi Discussion :

manipuler excel avec delphi ( gestion des feuilles)


Sujet :

Delphi

  1. #1
    Débutant Avatar de lila23
    Inscrit en
    Janvier 2009
    Messages
    354
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 354
    Points : 54
    Points
    54
    Par défaut manipuler excel avec delphi ( gestion des feuilles)
    bonjour tout le monde , voila dans mon application j'ai un bouton vers excel qui est programmé comme ceci :
    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
     
    vMSExcel := CreateOleObject('Excel.Application');
    vMSExcel.Visible := true;
     
    //creer un nouveau fichier xls
    vXLWorkbooks := vMSExcel.Workbooks;
    vXLWorkbook := vXLWorkbooks.Add;
     
    //acceder a une feuil
    vWorksheet := vXLWorkbook.WorkSheets['feuil1'];
     
     
    //ecrire les titres des champs
    for i:=0 to mouv.FieldCount-1 do
    vworksheet.cells.item[1,i+1].value:=mouv.Fields[i].FieldName;
     
    //ecrire les données
    mouv.First;
    for j := 1 to mouv.RecordCount do
    begin
    for i:=0 to mouv.FieldCount-1 do
    begin
    vworksheet.cells.item[j+1,i+1].value:=mouv.Fields[i].AsString;
    end;
    mouv.Next;  
    end;
    ce que j'aimerais faire si de limiter le nombre d'enregistrement par feuille genre je met 200 lignes dépassé cette limite je passe a la feuille suivante

    j'aimerais aussi savoir si je peux moi meme (par programmation) donner le nom aux feuilles selon mes besoins et remplir ces feuilles selon des critéres par exemple selon le département pour les employés

    merci infiniment

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    1 519
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 519
    Points : 2 153
    Points
    2 153
    Billets dans le blog
    1
    Par défaut
    Bonjour, déjà votre boucle pour parcourir le DataSet me semble douteuse, il vaudrait mieux la remplacer par un while not Eof... Next.

    Ensuite il suffit de modifier le code comme ceci :

    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
    procedure AddValues( poWorkSheet : WorkSheet )
    var
     Idx, Cpt: Integer;
    begin
      Idx := 1;
      //ecrire les titres des champs
      for Cpt :=0 to mouv.FieldCount-1 do 
        poWorkSheet.cells.item[Idx, Cpt+1].value:=mouv.Fields[Cpt].FieldName;
     
      while not mouv.Eof And ( Idx <= 201 ) do
      begin
        Inc(Idx);
        for Cpt :=0 to mouv.FieldCount-1 do
          poWorkSheet.cells.item[Idx, Cpt+1].value:=mouv.Fields[Cpt].AsString;
        mouv.Next;
      end;
    end;
     
    vMSExcel := CreateOleObject('Excel.Application');
    vMSExcel.Visible := true;
     
    //creer un nouveau fichier xls
    vXLWorkbooks := vMSExcel.Workbooks;
    vXLWorkbook := vXLWorkbooks.Add;
     
     
     
    mouv.First;
    while not mouv.Eof do
    begin
      if vWorksheet = NIL then
        //acceder a la première feuillle
        vWorksheet := vXLWorkbook.WorkSheets['feuil1'];
      else
        vWorksheet := vXLWorkbooks.Add; 
     
      AddValues( vWorksheet );
    end;
    Enfin pour changer le nom d'une feuille tu dois avoir une propriété Name au niveau du Worksheet pour pouvoir modifier son nom.
    La FAQ - les Tutoriels - Le guide du développeur Delphi devant un problème

    Pas de sollicitations techniques par MP -

  3. #3
    Débutant Avatar de lila23
    Inscrit en
    Janvier 2009
    Messages
    354
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 354
    Points : 54
    Points
    54
    Par défaut
    bonjour

    tout d'abord merci de votre aide
    j'ai essayé votre code j'ai ajouté un Tworksheet sur ma fiche le probléme c'est que j'ai un probléme avec les variables alors j'ai le message d'erreur incompatible type : worksheet and TExcelapplication je ne vois pas comment faire !!!
    si je laisse ca en variant ce ne marche pas j'ai : incompatible type : worksheet and varaiant si je remet les varaibles en worksheet j'ai le premier message d'erreur a cause de ce code la :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    vMSExcel := CreateOleObject('Excel.Application');
    vMSExcel.Visible := true;
     
    //creer un nouveau fichier xls
    vXLWorkbooks := vMSExcel.Workbooks;
    vXLWorkbook := vXLWorkbooks.Add;
    encore merci

  4. #4
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Points : 4 935
    Points
    4 935
    Par défaut
    Salut lila,

    Peux-tu nous poster un peu plus de code, car là, j'avoue ne pas comprendre
    Je suppose que tu t'aides de ce tutoriel ?

  5. #5
    Débutant Avatar de lila23
    Inscrit en
    Janvier 2009
    Messages
    354
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 354
    Points : 54
    Points
    54
    Par défaut
    bonjour ero enfin tu es venus j'ai essayé d'apaté ce que l'on ma montré jsute avant comme ceci
    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
     
    procedure AddValues( poWorkSheet : TExcelWorkSheet )
    var
     Idx, Cpt: Integer;
    var vMSExcel,vXLWorkbooks, vXLWorkbook,  vWorksheet : variant ;
    begin
      Idx := 1;
      for Cpt :=0 to form4.mouv.FieldCount-1 do 
        poWorkSheet.cells.item[Idx, Cpt+1].value:=form4.mouv.Fields[Cpt].FieldName;
     
      while not form4.mouv.Eof And ( Idx <= 201 ) do
      begin
        Inc(Idx);
        for Cpt :=0 to form4.mouv.FieldCount-1 do
          poWorkSheet.cells.item[Idx, Cpt+1].value:=form4.mouv.Fields[Cpt].AsString;
        form4.mouv.Next;
      end;
    end;
     
    vMSExcel := CreateOleObject('Excel.Application');
    vMSExcel.Visible := true;
     
    //creer un nouveau fichier xls
    vXLWorkbooks := vMSExcel.Workbooks;
    vXLWorkbook := vXLWorkbooks.Add;
     
    form4.mouv.First;
    while not form4.mouv.Eof do
    begin
      if vWorksheet = NIL then
        //acceder a la première feuillle
        vWorksheet := vXLWorkbook.WorkSheets['feuil1'];
      else
        vWorksheet := vXLWorkbooks.Add; 
     
      AddValues( vWorksheet );
    end;
    mais j'ai eut une 10aine de message d'erreur surtout sur l'incompatibilié des types de mes variables!!
    merci

Discussions similaires

  1. lire une feuille excel avec delphi sans excel ?
    Par dragonno dans le forum Bases de données
    Réponses: 4
    Dernier message: 26/10/2010, 15h39
  2. comment importer une feuille excel avec delphi
    Par Mucho85 dans le forum Composants VCL
    Réponses: 4
    Dernier message: 21/01/2009, 12h10
  3. Excel: gestion des feuilles
    Par j.p.mignot dans le forum Excel
    Réponses: 2
    Dernier message: 07/11/2006, 10h28
  4. Dupliquer une feuille Excel avec Delphi 7
    Par loci dans le forum Delphi
    Réponses: 1
    Dernier message: 01/07/2006, 15h38
  5. Comment remplir un ComboBox avec le nom des feuilles Excel ?
    Par libracom dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 27/06/2005, 15h14

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