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 :

[Delphi 7] Afficher données d'un classeur Excel dans grille


Sujet :

Delphi

  1. #1
    Membre régulier Avatar de djeckelle
    Femme Profil pro
    Architecte de système d'information
    Inscrit en
    Septembre 2004
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 46
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2004
    Messages : 87
    Points : 101
    Points
    101
    Par défaut [Delphi 7] Afficher données d'un classeur Excel dans grille
    Bonjour,

    J'ai trouvé comment piloter excel, ouvrir le fichier, manipuler ses données..., mais on ouvre excel. Là je ne veux pas ouvir excel; je veux juste afficher les données d'un fichier dans une gille.

    Est ce que quelqu'un à une piste ou une solution ?
    D'avance merci.

  2. #2
    Membre éclairé
    Avatar de denokan
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2002
    Messages
    434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2002
    Messages : 434
    Points : 746
    Points
    746
    Par défaut
    à priori le format de fichier excel est propriétaire et ce sera difficile de l'ouvrir sans passer par excel... sauf avec la nouvelle version Office 2007, dont les formats de fichiers sont maintenant des .zip avec du xml dedans.
    je ne vois pas d'autre piste

  3. #3
    Membre expert
    Avatar de TicTacToe
    Inscrit en
    Septembre 2005
    Messages
    1 940
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 940
    Points : 3 575
    Points
    3 575
    Par défaut
    Si c'est juste pour une lecture

    Il y a un "viewver" Excel fournis par Microsoft (je me rapelle plus son nom).
    Ca peut être une solution alternative.
    Ce viewver est gratuit, et beaucoup plus "light"
    et à la rigueur être intégré directement sur un panel de ton application.. ?

    c'est juste une piste

  4. #4
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 871
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 871
    Points : 15 287
    Points
    15 287
    Par défaut
    Salut !
    je veux juste afficher les données d'un fichier dans une grille.
    Tiens, j'ai trouvé ça sur le forum VB6, ça ne devrait pas être compliqué à adapter, et ça pourrait te donner des pistes :
    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
    Dim obExcelApp As Object     ' Objet Application
    Dim obWorkSheet As Object    ' Objet Feuille de calcul
     
    Set obExcelApp = New Excel.Application
    obExcelApp.DisplayAlerts = False
    obExcelApp.Visible = False         
     
    ' Ajouter un nouveau classeur
     obExcelApp.Workbooks.Add
     
    ' Référencer la feuille de calcul active
    Set obWorkSheet = obExcelApp.ActiveSheet
     
    obWorkSheet.Cells(1, 1).Value = "TEST"
     
    obExcelApp.Visible = True
    ....
     
    'fermeture
     
    obWorkBook.close 'ferme le classeur
    obExcelApp.quit   'ferme lapplication
     
    set obWorkSheet = nothing 
    set obExcelApp = nothing
    HTH,
    --
    jp

  5. #5
    Membre émérite
    Avatar de supersnail
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 719
    Points : 2 793
    Points
    2 793
    Par défaut
    Il faut utiliser OLE.

    Un bout de code(à copier dans une procedure de ton code):
    Il faut rajouté l'unité ComObj dans la partie "uses"
    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
    var
    MonObjOle,MonDocument : Variant;
    begin
    {Initialisation de l'objet COM Excel.Application}
    try
        MonObjOle := CreateOleObject ('Excel.Application');
      except
    Application.MessageBox ('Impossible d''initialiser l''objet OLE Excel.Application', 'Erreur', MB_OK);
        Exit ;
    end;
    try
    MonDocument :=  MonObjOle.Workbooks.open('C:\toto.xls');
      except
        Application.MessageBox ('Impossible d''initialiser l''objet OLE Excel.Workbook', 'Erreur', MB_OK);
    Exit ;
      end;
    {Placer ici le code de traitement}
    end;
    PS:Remplaçer "C:\toto.xls" par le nom du fichier cible!
    Pour plus d'informations sur OLE,voir ici

    ATTENTION:Ne PAS mettre "MonObjOle.Visible:=true" dans le code,car ces lignes affichent Excel.Mais si l'ordinateur affiche toujours Excel,taper
    "MonObjOle.Visible:=false"après la zone "{Placer ici le code de traitement}"

  6. #6
    Membre régulier Avatar de djeckelle
    Femme Profil pro
    Architecte de système d'information
    Inscrit en
    Septembre 2004
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 46
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2004
    Messages : 87
    Points : 101
    Points
    101
    Par défaut
    Bonjour,


    Merci à tous pour vos conseils. J'ai trouvé un composant (Formula One) qui permet de gérér des onglets et d'exporter au format excel sans avois excel sur le poste utilisateur.

    Je vous souhaite également une bonne année.

  7. #7
    Membre à l'essai
    Homme Profil pro
    Analyste fonctionnel
    Inscrit en
    Avril 2004
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 11
    Points : 10
    Points
    10
    Par défaut
    Salut,
    Je vois que tu utilises Formula One pour des grille Excel et je me demandais si tu pouvais m'aider un peu.
    J'ai des données dans ma grille dans plusieurs onglet et je voudrais les imprimers.
    Je sais qu'il existe un méthode FilePrint ou FilePrintEx mais je ne sais vraiment pas comment elle fonctionne (malgres l'aide).
    Tu croix que tu peux m'aider, ou me conseiller?
    Merci...

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 24/05/2013, 17h59
  2. Réponses: 2
    Dernier message: 12/10/2011, 20h40
  3. Importer des données vers un classeur excel
    Par Maxim0 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 13/07/2011, 22h06
  4. [XL-2007] comment migrer des données entre plusieurs classeurs excel
    Par Iichham dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 10/06/2011, 14h28
  5. [VI-2007] Modifier la police d'un graphique de données lié à un classeur Excel
    Par leo_archange dans le forum Visio
    Réponses: 0
    Dernier message: 28/03/2011, 10h40

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