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

C++Builder Discussion :

Extraire les donnees d'une Feuille Excel avec ADO


Sujet :

C++Builder

  1. #1
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Points : 3 766
    Points
    3 766
    Par défaut Extraire les donnees d'une Feuille Excel avec ADO
    Bonjour a tous
    A la suite de ce Post, j'ai continue mes recherches
    Et je suis arrive a 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
     
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    // chemin de la base
    AnsiString FileName = "C:\\Classeur1.xls";
    ADOConnection1->Close();
    ADOConnection1->ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + FileName + ";Extended Properties=\"Excel 8.0;HDR=YES;IMEX=1\"";
    ADOConnection1->Connected = true;
    ADOConnection1->Open();
    ADOTable1->TableName = "Feuil1$";
    ADOTable1->Open();
    Edit1->Text = ADOTable1->FindField("Nom")->AsString; // Par Nom de colonne
    //Edit1->Text = ADOTable1->Fields->Fields[1]->AsString; // par index
    }
    Ce code permet d'ouvrir un classeur Excel et d'en extraire les donnees soit par le Nom que l'on a donne sur la premiere colonne soit par l'index de la colonne
    --
    Plutot que d'essayer de réinventer la roue, apprenons à nous en servir

  2. #2
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Points : 3 766
    Points
    3 766
    Par défaut
    Un bout de code simple pour l'exemple, qui se connecte donne la possibilite d'aller a l'enregistrement suivant/precedent et de faire une recherche, "Nom" est le titre d'un champ (colonne)
    4 - TButton
    2 - TEdit
    1 - TADOConnection
    1 - TADOTable
    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
     
    //---------------------------------------------------------------------------
    #include <vcl.h>
    #pragma hdrstop
    #include "Unit1.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    // ouvrir la base
    // chemin de la base
    AnsiString FileName = "C:\\Classeur1.xls";
    ADOConnection1->Close();
    ADOConnection1->ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + FileName + ";Extended Properties=\"Excel 8.0;HDR=YES;IMEX=1\"";
    ADOConnection1->Connected = true;
    ADOConnection1->Open();
    ADOTable1->TableName = "Feuil1$";
    ADOTable1->Open();
    Edit1->Text = ADOTable1->FindField("Nom")->AsString;
    //Edit1->Text = ADOTable1->Fields->Fields[1]->AsString;
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button2Click(TObject *Sender)
    {
    // enregistrement suivant
    if(!ADOTable1->Eof)
    {
    ADOTable1->Next();
    Edit1->Text = ADOTable1->FindField("Nom")->AsString;
    }
    else
    {
    Beep(500, 100);
    }
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button3Click(TObject *Sender)
    {
    // enregistrement precedent
    if(!ADOTable1->Bof)
    {
    ADOTable1->Prior();
    Edit1->Text = ADOTable1->FindField("Nom")->AsString;
    }
    else
    {
    Beep(500, 100);
    }
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button4Click(TObject *Sender)
    {
    // rechercher
    String text = Edit2->Text;
    ADOTable1->Filter = "";
    ADOTable1->Sort = "Nom ASC"; // ASCendant ou DESCendant
    // loCaseInsensitive ne tient pas compte de la Casse
    // loPartialKey recherche sur une clef partielle
    ADOTable1->Locate("Nom", text, TLocateOptions() << loCaseInsensitive << loPartialKey);
    Edit1->Text = ADOTable1->FindField("Nom")->AsString;
    }
    //---------------------------------------------------------------------------
    --
    Plutot que d'essayer de réinventer la roue, apprenons à nous en servir

Discussions similaires

  1. Sélection d'une feuille excel avec une listbox
    Par felibelle dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 25/07/2022, 17h27
  2. Récupérer le nom d'une feuille excel avec ADO
    Par Kephuro dans le forum Bases de données
    Réponses: 1
    Dernier message: 25/01/2008, 21h11
  3. Réponses: 9
    Dernier message: 19/02/2007, 20h33
  4. inserer les donnees d une feuille excel dans une table sql
    Par josyde2006 dans le forum Accès aux données
    Réponses: 2
    Dernier message: 20/12/2006, 08h40

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