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 :

comment copier les donnés d'une table vers un fichier exel


Sujet :

Bases de données Delphi

  1. #1
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 148
    Points : 47
    Points
    47
    Par défaut comment copier les donnés d'une table vers un fichier exel
    bj a ts

    j'ai une table yacine et un fichier de exel

    comment copier les donnés d'une table vers un fichier exel

    je vous remerci d'avance

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 464
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 464
    Points : 24 888
    Points
    24 888
    Par défaut
    tu peux ouvrir ta table, tu génère un fichier csv, et tu ouvre ce fichier avec 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
           ExcelOle := CreateOleObject('Excel.Application');
           try
             ExcelOle.Visible := False;
             ExcelOle.WorkBooks.Open(NomDuFichierTemporaire);
             ExcelOle.WorkBooks[1].WorkSheets[1].Name := 'Nom de la Page';
     
             ExcelOle.Cells.Select;
             ExcelOle.Selection.Columns.AutoFit;
             ExcelOle.Cells[1, 1].Select;
     
             ExcelOle.ActiveWorkBook.SaveAs(Filename := NomDuFichierDefinitif, FileFormat := -4143); // Convertit CSV en Excel        
             DeleteFile(NomDuFichierTemporaire);
     
          finally
             ExcelOle.Visible := True;
             ExcelOle.UserControl := True;
             ExcelOle := Unassigned;
          end;
    tu peux générer le fichier totalement en Automation, c'est assez long à écrire ... et la gestion des themes c'est une horreur
    voir aussi TMS FlexCell, c'est plus court, mais tu n'as pas toutes les possibilités !
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 148
    Points : 47
    Points
    47
    Par défaut
    merci
    mais j'ai pas compri votre code, c'est quoi ça ( ExcelOle )

  4. #4
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 464
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 464
    Points : 24 888
    Points
    24 888
    Par défaut
    c'est une variable

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var
      ExcelOle: Variant;
    ça se devine avec l'affectation de Unassigned !
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  5. #5
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 148
    Points : 47
    Points
    47
    Par défaut
    merci

    moi je veux afficher un fichier exel dans un dbgrid, c'est a dir dans une table

  6. #6
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 464
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 464
    Points : 24 888
    Points
    24 888
    Par défaut
    faut savoir ce que tu veux

    comment copier les donnés d'une table vers un fichier exel
    moi je veux afficher un fichier exel dans un dbgrid, c'est a dir dans une table
    dans cas, tu peux utiliser un driver ADO pour Excel, j'avais trouvé cela une fois, où l'on pouvait ouvrir un fichier Excel comme une Table ACCESS, c'est vieux, j'ai vu ça à l'époque de Win98, je ne l'ai jamais retrouvé (je n'ai pas cherché faut dire) ...
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  7. #7
    Expert confirmé

    Profil pro
    Leader Technique
    Inscrit en
    Juin 2005
    Messages
    1 756
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 756
    Points : 4 170
    Points
    4 170
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    dans cas, tu peux utiliser un driver ADO pour Excel, j'avais trouvé cela une fois, où l'on pouvait ouvrir un fichier Excel comme une Table ACCESS, c'est vieux, j'ai vu ça à l'époque de Win98, je ne l'ai jamais retrouvé (je n'ai pas cherché faut dire) ...
    Il n'y a pas besoin de chercher bien loin... C'est une fonctionnalité native de MS Jet 4.
    Lorsque tu configures la chaîne de connexion :
    - il suffit de choisir le provider "Microsoft Jet 4.0 OLE DB Provider" (comme pour ACCESS).
    - Tu choisis le fichier Excel en guise de base de données.
    - Enfin (et la il faut le savoir ), dans le dernier onglet, il faut configurer une "Extended Properties" avec la valeur "Excel 8.0"

    Ensuite tu peux manipuler les feuilles Excel (on les cellules nommées) comme s'il s'agissait de tables dans ta base de données.

  8. #8
    Membre chevronné Avatar de chaplin
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 215
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 215
    Points : 1 819
    Points
    1 819
    Par défaut
    Très pratique, pour y arriver j'ai du mettre le propriété TableDirect à true dans le composant TAdoTable, et dans la propriété TableName on peut choisir parmis les feuilles Excel.

    Ne pas oublier

  9. #9
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 464
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 464
    Points : 24 888
    Points
    24 888
    Par défaut
    Merci Franck SORIANO et chaplin, il y a quelques subtilités à connaitre, je ferais quelques tests, cela m'intéresse ENORMEMENT moi aussi, ça fait tellement longtemps que je ne l'ai pas refait ... surtout à l'époque j'avais utilsé un composant TExcelTable (le vrai nom était bien plus pourri mais je ne m'en rappele pas) pour Delphi 3 et non directement avec le TADOTable qui n'existait pas !
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

Discussions similaires

  1. Réponses: 1
    Dernier message: 19/10/2011, 12h13
  2. [MySQL] Copier les données d'une table vers une autre
    Par kamnouz dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 10/12/2008, 15h48
  3. Réponses: 9
    Dernier message: 28/05/2008, 15h29
  4. Réponses: 4
    Dernier message: 11/09/2006, 17h58
  5. comment modifier les données d'une table à travers un dbgrid
    Par bertrand_declerck dans le forum Bases de données
    Réponses: 12
    Dernier message: 19/07/2005, 09h51

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