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

MFC Discussion :

Automation Excel


Sujet :

MFC

  1. #1
    Membre régulier

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 115
    Points : 103
    Points
    103
    Par défaut Automation Excel
    Bonjour à tous,
    Dans le cadre d'une programme SDI, je souhaite intégrer Excel au sein de mon application (ie voir excel s'encastrer au milieu de ma View et avoir accès à toutes ses fonctionnalités), l'exemple de la MSDN correspondant visuellement à ce que je veux (http://support.microsoft.com/kb/184663/EN-US/)
    A partir de cet exemple mes soucis sont de :
    - charger un fichier
    - récupérer les éventuelles modifications et sauvegarder le fichier

    En effet en regardant le code de plus près, on s'aperçoit que l'application crée un workbook avec une sheet point final. Y a t'il une fonction pour récupérer toutes les données en un coup (macros incluses) en ouvrant un fichier xls valide ?

    Par ailleurs j'entends beaucoup parler de controle activeX pour réaliser ce genre d'opération mais je ne vois pas l'utilité par rapport à une DLL classique listant les fonctions permettant la communication avec Excel. Qui peut m'éclairer sur le mécanisme de fonctionnement ?

    Merci beaucoup

  2. #2
    Expert éminent sénior

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

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 751
    Points : 10 670
    Points
    10 670
    Billets dans le blog
    3
    Par défaut
    Par ailleurs j'entends beaucoup parler de controle activeX pour réaliser ce genre d'opération mais je ne vois pas l'utilité par rapport à une DLL classique listant les fonctions permettant la communication avec Excel
    Ben essaye de faire ça avec une dll et tu comprendras. Comment connaitre les arguments des fonctions ? Leur type ? Comment exporter des classes ? Comment gérer la durée de vie des objets (allocations / désallocation incompatibles entre dll...) ? Comment gérer les multiples versions de ta dll ?
    La réponse à tout ça c'est COM/OLE. En plus ça fait abastraction des dll. Tu désignes un objet par son nom, pas par une dll. Ca permet d'utiliser ton objet dans des langages de script, dans une page web...

  3. #3
    Membre régulier

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 115
    Points : 103
    Points
    103
    Par défaut
    Ok je comprends mieux effectivement merci.
    Pour en revenir à la première question, je n'ai peut-être pas été assez clair :
    Je suis capable de communiquer avec Excel tournant de manière indépendante (lecture, écriture, exécution de macros etc...) mais je souhaiterai que l'exécution d'excel se fasse dans une View.
    En gros pour le moment mon code a la tête suivante
    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
     
    Excel::_ApplicationPtr m_Excel; // Excel instance
    WORKSHEET m_mySheet;    // active sheet
     
    OleInitialize(NULL);
    HRESULT hr = m_Excel.CreateInstance(L"Excel.Application");
    if(FAILED(hr))
    MessageBox("Impossible de lancer Excel","Erreur",MB_OK);
    else
    {
      m_Excel->Visible     = true;
      m_Excel->UserControl = true;
      m_Excel->Workbooks->Open((_bstr_t)m_excelPath);
      m_mySheet = m_Excel->ActiveSheet;
      // TO DO les diverses opérations
      m_Excel->Quit();
    }
    Excel tourne dans son coin et n'est pas "embedded" dans mon application
    Merci !

    [Edition] Finalement j'ai trouvé un contrôle ActiveX nommé DSOFramer (créé par Microsoft) qui marche super bien. On l'insère dans la fenêtre et on peut communiquer avec un excel intégré à la View

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

Discussions similaires

  1. automation Excel: sélection de cellule
    Par jarod_bx dans le forum Access
    Réponses: 3
    Dernier message: 03/11/2005, 15h33
  2. [Automation Excel] ajuster des cellules excel
    Par willich dans le forum Access
    Réponses: 4
    Dernier message: 10/10/2005, 10h04
  3. petit probleme avec automation Excel
    Par Tempotpo dans le forum API, COM et SDKs
    Réponses: 6
    Dernier message: 05/08/2005, 08h57
  4. automation excel : comment indiquer la feuille de travail ?
    Par mat_lefebvre dans le forum Access
    Réponses: 2
    Dernier message: 04/12/2003, 15h14
  5. Automation Excel
    Par cgo dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 19/03/2003, 15h03

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