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

Bases de données Delphi Discussion :

aide sur export dbgrid vers excel


Sujet :

Bases de données Delphi

  1. #1
    Membre régulier
    Homme Profil pro
    agent de fisc(les impots)
    Inscrit en
    Juillet 2006
    Messages
    427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : agent de fisc(les impots)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 427
    Points : 111
    Points
    111
    Par défaut aide sur export dbgrid vers excel
    Salut a tout
    delphi 7,interbase 6.5
    pour exporter le contenue d'un dbgrid vere excel jais trouver dans le forum ce 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
     
    Procedure ExportToExcel(aGrid : TDBGrid);
    Var
      PreviewToExcel : TExcelApplication;
      RangeE : Excel97.Range;
      I, J, Col, Row : Integer;
      SavePlace : TBookmark;
    Begin
     
      PreviewToExcel := TExcelApplication.Create(Application.MainForm);
      PreviewToExcel.Connect;
      PreviewToExcel.Workbooks.Add(Null, 0);
      RangeE := PreviewToExcel.ActiveCell;
      Col := 0;
      Row := 2;
     
      // En tête tableau excel
      For I := 0 To aGrid.Columns.Count - 1 Do
        If aGrid.Columns[I].Visible Then
        Begin
          RangeE.Value := aGrid.Columns[I].FieldName;
          RangeE := RangeE.Next;
          Inc(Col);
        End;
     
      // Si il y a une selection
      If aGrid.SelectedRows.Count > 0 Then
       Begin
        For i := 0 To aGrid.SelectedRows.Count - 1 Do
        Begin
          RangeE := PreviewToExcel.Range['A' + IntToStr(Row), 'A' + IntToStr(Row)];
          aGrid.DataSource.Dataset.GotoBookmark(pointer(aGrid.SelectedRows.Items[i]));
          For j := 0 To aGrid.Columns.Count - 1 Do
            If aGrid.Columns[J].Visible Then
            Begin
              RangeE.Value := aGrid.DataSource.Dataset.Fields[j].AsString;
              RangeE := RangeE.Next;
            End;
          Inc(Row);
        End;
      end
     
      Else
     
        //Si il n'y a pas de sélection
      Begin
        SavePlace := aGrid.DataSource.Dataset.GetBookmark;
        aGrid.DataSource.Dataset.First;
     
        Try
          While Not aGrid.DataSource.Dataset.Eof Do
          Begin
            RangeE := PreviewToExcel.Range['A' + IntToStr(Row), 'A' + IntToStr(Row)];
            For I := 0 To aGrid.Columns.Count - 1 Do
              If aGrid.Columns[I].Visible Then
              Begin
                RangeE.Value := aGrid.Fields[I].AsString;
                RangeE := RangeE.Next;
              End;
            Inc(Row);
            aGrid.DataSource.Dataset.Next;
          End;
     
          aGrid.DataSource.Dataset.GotoBookmark(SavePlace);
     
        Finally
          aGrid.DataSource.Dataset.FreeBookmark(SavePlace);
        End;
      End;
     
      RangeE := PreviewToExcel.Range['A1', Chr(64 + Col) + IntToStr(Row - 1)];
      RangeE.AutoFormat(3, Null, Null, Null, Null, Null, Null);
      PreviewToExcel.Visible[0] := True;
      PreviewToExcel.Disconnect;
    End;
    jais rajouter dans les uses Excel97, clipbrd
    a l'exécution erreur qui me dise
    identifiant non déclarer "range" et le curseur point sur la declaration
    RangeE : Excel97.Range;
    vous avez une idée svp
    merci

  2. #2
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 786
    Points : 5 918
    Points
    5 918
    Par défaut
    Citation Envoyé par kroma23 Voir le message
    jais rajouter dans les uses Excel97, clipbrd
    Le presse papier "clipbrd" est inutile, mais peut-être que le reste de ton code le nécessite...

    Citation Envoyé par kroma23 Voir le message
    identifiant non déclarer "range" et le curseur point sur la declaration RangeE : Excel97.Range;
    Remplace Excel97.Range par ExcelRange et tout rentrera dans l'ordre.

    --
    Philippe.

  3. #3
    Membre éclairé

    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2010
    Messages
    297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2010
    Messages : 297
    Points : 705
    Points
    705
    Par défaut
    Si t'as déjà installé la JVCL, tu peux utiliser le composant TJVDBGridExcelExport, il y a même un exemple qui explique son utilisation.

  4. #4
    Membre régulier
    Homme Profil pro
    agent de fisc(les impots)
    Inscrit en
    Juillet 2006
    Messages
    427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : agent de fisc(les impots)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 427
    Points : 111
    Points
    111
    Par défaut
    Oui Vous avez raison Philipe
    merci bien pour vous et pour Adelneo

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

Discussions similaires

  1. Export sur deux feuilles vers excell depuis access.
    Par schwinny dans le forum VBA Access
    Réponses: 3
    Dernier message: 25/03/2008, 18h27
  2. exporter mon dbgrid vers excel
    Par nil dans le forum Bases de données
    Réponses: 4
    Dernier message: 29/04/2006, 11h44
  3. Export requete vers excel et mise en forme
    Par ston dans le forum Access
    Réponses: 2
    Dernier message: 27/10/2005, 17h55
  4. Export ASP vers excel
    Par steph04 dans le forum ASP
    Réponses: 4
    Dernier message: 04/05/2005, 02h22
  5. exporter données (requete ou DBGrid) vers Excel
    Par marie253 dans le forum Bases de données
    Réponses: 4
    Dernier message: 14/09/2004, 11h20

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