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 :

Importation Fichier Excel dans un DBGrid (Erreur)


Sujet :

Delphi

  1. #1
    Membre à l'essai
    Homme Profil pro
    developer delphi (2.0)
    Inscrit en
    Juillet 2019
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Algérie

    Informations professionnelles :
    Activité : developer delphi (2.0)
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juillet 2019
    Messages : 21
    Points : 14
    Points
    14
    Par défaut Importation Fichier Excel dans un DBGrid (Erreur)
    Bonjour a tous

    Cette code m'afficher une message d'erreur
    l'importation a éte effectué mais avec un message d'erreur
    Merci d'avance de m'aider
    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
     
    procedure TForm1.importation(Sender: TObject);
    var
     Excel: variant;
     Cell,Sheet : variant;
     Col: TColumn;
     Range :AnsiString;
     i: char;
     column,row: integer;
     
    begin
      Excel:=CreateOleObject('Excel.Application');
      Excel.Workbooks.Open(Edit1.Text,unassigned,true);
      Sheet := Excel.WorkBooks[1].WorkSheets[1];
      i:='A';
     
        while (Sheet.Range[i+'1'].value<>' ') do
        begin
      Col:=DBGrid1.Columns.Add;
      Col.Title.Caption:=Sheet.Range[i+'1'];
      byte(i) := byte(i) + 1 ;
    end;
     
    end ;
    Images attachées Images attachées  

  2. #2
    Membre expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 344
    Points : 3 122
    Points
    3 122
    Par défaut
    Bonjour,

    il faudrait que tu précises avec quelle version de Delphi tu travailles (et VCL ou FMX), les Uses que tu utilises pour Excel
    et que tu donnes un exemple de ton fichier Excel.

    On pourra alors tester.

    A+
    Charly

  3. #3
    Membre confirmé Avatar de blonde
    Femme Profil pro
    Développeur Delphi
    Inscrit en
    Septembre 2003
    Messages
    278
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Delphi

    Informations forums :
    Inscription : Septembre 2003
    Messages : 278
    Points : 477
    Points
    477
    Par défaut
    Bonjour,

    saurai-tu dire à quelle ligne tu as l'erreur ?

    Moi j'ai dû ajouter "VarToStr ()" pour caster ton expression "Sheet.Range[i+'1'].value" par exemple. Sinon, j'avais effectivement une erreur.

  4. #4
    Membre à l'essai
    Homme Profil pro
    developer delphi (2.0)
    Inscrit en
    Juillet 2019
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Algérie

    Informations professionnelles :
    Activité : developer delphi (2.0)
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juillet 2019
    Messages : 21
    Points : 14
    Points
    14
    Par défaut
    Merci a vous
    mais voila la solution mais j'aime maitemenet remplire les champs restant( les lignes) j'attend votre aide svp
    je developpe avec delphi 2.0
    et merci d'avance

    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
     nbr := 0 ;
     c := 'A';
     while(c <= 'Z') do
     begin
     test1 := (Sheet.Range[c+'1'].value)   ;
     if (test1 <> '' ) then
      begin
      nbr := nbr + 1 ;
      Col:=DBGrid1.Columns.Add;
      Col.Title.Caption:=test1;
      Col.Title.Caption:=test;    // Pour ajouter l'en tête de tableau 
    // row.Fields.Caption:=test1;
     
      byte(c) := byte(c)+1;
     end
     else
       byte(c) := byte(c)+1;
     end ;
      label1.caption := inttostr(nbr) ;
     
        end;

  5. #5
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 038
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 038
    Points : 40 943
    Points
    40 943
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    un DBGrid est lié à une source de données (contrairement à un stringgrid) un insert dans cette source fait donc le travail,
    Mais vu ce que vous voulez faire, je pense que c'est un stringgrid que vous devez utiliser ajoutez une ligne revient alors à augmenter rowcount
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  6. #6
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 038
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 038
    Points : 40 943
    Points
    40 943
    Billets dans le blog
    62
    Par défaut
    Re,

    Tout d'abord quelques mots sur votre solution qui n'est pas vraiment optimisée : vous recherchez toutes les colonnes de la grille au lieu de vous contenter de celles utilisées ce que vous auriez pu obtenir avec EntireRow voir faq

    Ensuite vous voulez utiliser une DBGrid, si c'est le cas ce n'est pas la grille qu'il faut remplir mais une table
    Enfin que voulez vous faire avec cette grille car pour l'instant vous nous demandez l'affichage mais je sens venir les modifications ensuite !


    Comme il s'agit de Delphi 2.0 peu de personnes pourront vous proposer des solutions et les tester car D2 date du siècle dernier

    Avez-vous pensé à rechercher un composant tiers ? Vous verrez qu'il y en a peu pour D2 inspirez vous donc de ces sources https://torry.net/db/access/db_bdeexport/oleexcel.zip
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

Discussions similaires

  1. Importation Fichier Excel dans un DBGrid
    Par Nechba dans le forum Delphi
    Réponses: 0
    Dernier message: 29/07/2019, 17h58
  2. [AC-2016] Importer fichier Excel dans 2 tables (erreur)
    Par sebing dans le forum VBA Access
    Réponses: 5
    Dernier message: 08/01/2017, 20h59
  3. [AC-2003] Erreur importation fichier Excel dans une BDD
    Par Contrec dans le forum VBA Access
    Réponses: 5
    Dernier message: 27/08/2009, 14h59
  4. Import fichier Excel dans Access
    Par MYNOTAURE dans le forum Access
    Réponses: 1
    Dernier message: 11/03/2007, 13h43
  5. Importation fichier Excel dans table Access
    Par kemasse dans le forum Access
    Réponses: 2
    Dernier message: 27/06/2006, 15h12

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