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

Bibliothèques Discussion :

C++ et Excel


Sujet :

Bibliothèques

  1. #1
    Membre confirmé Avatar de FidoDido®
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2005
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2005
    Messages : 101
    Par défaut C++ et Excel
    Hello tous...
    Je cherche un moyen simple de lire et écrire dans un fichier Excel en utilisant C++. Quelqu'un saurait-il comment faire ?

    Merci d'avance

  2. #2
    Membre éclairé
    Avatar de Le Barde
    Homme Profil pro
    Chanteur
    Inscrit en
    Juillet 2007
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Chanteur

    Informations forums :
    Inscription : Juillet 2007
    Messages : 343
    Par défaut
    Bonjour,
    Je suis dans le même cas que toi, je viens de poster ce post et ce post-là qui pourront peut-être t'aider... J'attends encore des réponses...

  3. #3
    Membre éclairé Avatar de Bayard
    Inscrit en
    Juin 2002
    Messages
    863
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 863
    Par défaut
    Il est possible de gérer des fichiers .csv (que excel sait gérer).

    Ce sont des fichiers ascii que le C++ sait gérer (sans librairie: il faut ouvrir et gérer un fichier ascii).

    Les champs sont délimités par un point virgule ou un virgule, je ne sais plus.

  4. #4
    Membre émérite
    Avatar de Gabrielly
    Inscrit en
    Juin 2004
    Messages
    722
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 722
    Par défaut
    Salut,

    Si vous voulez utiliser Excel efficacement dans vos programmes C++, ils faut générer les objets Excel à partir de sa librairie de type empaquetée dans le fichier Excel.exe ensuite vous utiliser des smart pointer tel ApplicationPtr, WorkbookPtr, WorkSheetPtr, RangePtr, etc.
    Avec les assistants de Visual C++ la tâche est très simplifiée...

  5. #5
    Expert confirmé

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    Ca s'appelle l'automation et ca permet de piloter Excel, qui doit donc etre installé. Voir le forum + la FAQ C++. Il y a d'autres moyens aussi (recherche...). On peut passer par ODBC je crois, et manipuler une feuille Excel comme une base de données, sans que ce dernier ne soit installé il me semble (juste le driver ODBC bien sur).

  6. #6
    Membre éclairé
    Avatar de Le Barde
    Homme Profil pro
    Chanteur
    Inscrit en
    Juillet 2007
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Chanteur

    Informations forums :
    Inscription : Juillet 2007
    Messages : 343
    Par défaut
    Et sous Linux c'est faisable ? (à part un "tout bête" .csv )

  7. #7
    Membre confirmé
    Inscrit en
    Septembre 2006
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 113
    Par défaut
    Citation Envoyé par Gabrielly Voir le message
    Salut,

    Si vous voulez utiliser Excel efficacement dans vos programmes C++, ils faut générer les objets Excel à partir de sa librairie de type empaquetée dans le fichier Excel.exe ensuite vous utiliser des smart pointer tel ApplicationPtr, WorkbookPtr, WorkSheetPtr, RangePtr, etc.
    Avec les assistants de Visual C++ la tâche est très simplifiée...
    Et comment tu fais ca???
    Tks

  8. #8
    Membre émérite
    Avatar de Gabrielly
    Inscrit en
    Juin 2004
    Messages
    722
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 722
    Par défaut
    Et comment tu fais ca???
    La solution que je peux te donner est si tu utilise visual Studio et en particulier Visual C++.
    Car avec un projet MFC et l'assistant Ajoute d'une classe, tu généres une classe à partir d'une typelib qui doit être disponible dans ta base de registre sous le nom du genre "Microsoft Excel 11.0 Object Library<1.5>" pour MS Excel 2003.
    Dans la fenêtre de l'assistant tu sélectionnes les interfaces dont tu as besoin pour piloter les objets d'Excel tels que _Application, _Workbook, _WorkSheet, Range.

    Une fois que c'est fais, tu as tes objets qui sont au fait des OLE Dispatch Driver. Ensuite tu implémentes ta logique d'interaction avec Excel.
    Mais commence par faire ce que je t'ai dis plus haut et tu comprendras par la suite car moi même je pilote aisément Excel à tel point que je me suis créer une DLL qui enveloppe la plupart des objets d'Excel.

    Et surtout n'hésite pas à consulter l' MSDN et en particulier la FAQ VC++ mais surtout l' MSDN.


  9. #9
    Membre Expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Par défaut
    Citation Envoyé par Le Barde Voir le message
    Et sous Linux c'est faisable ? (à part un "tout bête" .csv )
    Il y a bien l'alternative xml... Si la version visée est 2003+ (avant, je sais pas trop ce qui était supporté). Mais ça dépend ce que tu veux y mettre (format, assistant filtrage/tri dans une cellule d'en-tête oui, mais les folding, non, par exemple)
    Ca permet d'éviter la case automation, ce qui est pas plus mal dans des cas disons basiques

  10. #10
    Membre confirmé
    Inscrit en
    Septembre 2006
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 113
    Par défaut
    Citation Envoyé par Gabrielly Voir le message
    La solution que je peux te donner est si tu utilise visual Studio et en particulier Visual C++.
    Car avec un projet MFC et l'assistant Ajoute d'une classe, tu généres une classe à partir d'une typelib qui doit être disponible dans ta base de registre sous le nom du genre "Microsoft Excel 11.0 Object Library<1.5>" pour MS Excel 2003.
    Dans la fenêtre de l'assistant tu sélectionnes les interfaces dont tu as besoin pour piloter les objets d'Excel tels que _Application, _Workbook, _WorkSheet, Range.

    Une fois que c'est fais, tu as tes objets qui sont au fait des OLE Dispatch Driver. Ensuite tu implémentes ta logique d'interaction avec Excel.
    Mais commence par faire ce que je t'ai dis plus haut et tu comprendras par la suite car moi même je pilote aisément Excel à tel point que je me suis créer une DLL qui enveloppe la plupart des objets d'Excel.

    Et surtout n'hésite pas à consulter l' MSDN et en particulier la FAQ VC++ mais surtout l' MSDN.


    Merci beaucoup
    Ca fonctionne maintenant... enfin du moins l'exemple de msdn... :-)

    Je vais tenter de faire d'autres choses plus évoluées maintenant
    Tks

  11. #11
    Membre confirmé
    Avatar de dj_benz
    Homme Profil pro
    Inscrit en
    Octobre 2002
    Messages
    178
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 178
    Par défaut
    Bonjour,

    Je suis dans le même cas: je souhaite piloter (plus précisément: lire) des fichiers Excel avec un programme C++. J'ai déjà fait ça plusieurs fois, avec C++ Builder, en passant par des appels de fonctions OLE. Ca marchait très bien (un peu lent tout de même), mais actuellement, je programme en C++ basique (avec DevC++), donc, sans toutes les classes proposées par C++Builder.

    Que dois-je importer dans mon programme pour pouvoir utiliser OLE?
    Mieux encore, il parait que par ODBC c'est beaucoup plus rapide. Que dois-je mettre en place pour l'utiliser? Quelles librairies importer?

    Merci!

Discussions similaires

  1. [VB6] [Excel] Résultat d'une requete ds une feuille
    Par elifqaoui dans le forum VB 6 et antérieur
    Réponses: 12
    Dernier message: 07/01/2003, 17h52
  2. [VBA-E] [Excel] Filtrer le donnees d'une sheet
    Par donia dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 27/09/2002, 10h55
  3. [Kylix] kylix et excel
    Par gothe dans le forum EDI
    Réponses: 1
    Dernier message: 19/09/2002, 19h44
  4. Réponses: 2
    Dernier message: 22/07/2002, 12h13
  5. [Kylix] Excel via kylix
    Par Billy joel dans le forum EDI
    Réponses: 1
    Dernier message: 23/05/2002, 11h57

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