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 :

Traitement des fichiers EXCELS en visual C++6 sans MFC


Sujet :

MFC

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Traitement des fichiers EXCELS en visual C++6 sans MFC
    De Nasredine Evry, le 24 juillet 2005

    Je suis un passionné de langage C, alors que mes compétences sont limitées.
    Tout d'abord une petite question: Comment et dans quel endroit faut-il stocker un mot de passe ?

    A ce jour je commence réellement à me poser des questions sur mon niveau de débutant en c++(Visual C++6).
    J'ai une fonction très simple, elle ouvre un fichier *.xls ensuite elle récupère la valeur d'une cellule.
    Pour qu'elle soit plus efficace je cherche à évoluer vers la lecture/écriture par des variables (exemple:ma_colonne, un champs ou àpartir d'une position) et récupérer les contenues dans des structure(ou un tableau).

    Aperçue de ma fonction :
    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
     
    /******************************************************/ 
    /*                                                                                           */ 
    /* automation EXCEL                                                                */ 
    /*                                                                                           */ 
    /******************************************************/ 
    #include <windows.h> 
    #include <stdio.h> 
     
    #import "C:\Program Files\Fichiers communs\Microsoft Shared\Office10\MSO.DLL" \ 
    no_namespace rename("DocumentProperties","DocumentPropertiesXL") 
     
    #import "C:\Program Files\Fichiers communs\Microsoft Shared\VBA\VBA6\VBE6EXT.OLB" \ 
    no_namespace 
     
    #import <C:\Program Files\Microsoft Office\Office10\EXCEL.EXE> \ 
    rename("DialogBox","DialogBoxXLs") \ 
    rename("RGB","RGBXLs") \ 
    rename("DocumentProperties", "DocumentPropertiesXLs") \ 
    no_dual_interfaces 
     
    #pragma warning(default: 4192) 
    #pragma warning(default: 4146) 
     
    using namespace Excel; //sinon préfixer les objets par Excel:: 
     
    #define VT _ariant_t 
    #define BT _bstr_t 
     
    struct InitOle { 
                             InitOle()    { CoInitialize(NULL); } 
                             ~InitOle()  { CoUninitialize();    } 
    } _init_InitOle_; // Global Instance to force load/unload of OLE 
     
    int main(int argc, char*argv[]) 
    { 
            _ApplicationPtr pXlsApp; 
            _WorkbookPtr pBook; //pBook = pXlsApp->Workbooks->Add 
            //(static_cast<long>(Excel::xlWorksheet)); 
            // Create the workbook 
            _WorksheetPtr pFeuille; 
            _ChartPtr pChart; 
     
            char nomf[256]; //nom et chemin de fichier Excel
            printf("donnez le nom de fichier *.xls\n"); 
            gets(nomf); 
     
           HRESULT hr = pXlsApp.CreateInstance(L"Excel.Application"); 
           if( ! hr ) //accès au classeur 
           { 
                  pXlsApp -> PutVisible(1); //0 pour invisible 
                  pBook = pXlsApp -> Workbooks -> Open(nomf); 
                  pFeuille = pXlsApp -> ActiveSheet; 
     
                 long n = pXlsApp -> Range["D21"] -> Value;//lire une seule cellule ? 
                 printf("%d\n", n); 
                 pFeuille -> SaveAs("d:\\test2.xls"); 
                 pBook -> Close(); //ferme le classeur 
            } 
            else 
            { 
                     MessageBox( NULL, 
                                 "d:\a.xls non trouvé...\t\t\n\nà corriger le chemin\n ", 
                                 "Erreur", MB_ICONEXCLAMATION ); 
                     return 0; 
            } 
            if( pXlsApp ) pXlsApp -> Quit(); //Quitte l'application 
            return 0; 
    }
    C'est ce n'est pas trop lourd j'aimerai bien connaître une méthode pour utilisée les valeurs retournées pour construire un graphe.

  2. #2
    mat.M
    Invité(e)
    Par défaut
    Tout d'abord une petite question: Comment et dans quel endroit faut-il stocker un mot de passe ?
    merci de préciser : dans une cellule Excel ??

    Sinon le code semble bon et malheureusement on ne peut pas faire plus simple.
    En C++ c'est un peu plus ardu qu'avec VB par exemple où c'est très facile de piloter Excel

Discussions similaires

  1. Traitement des fichiers excel-Talend
    Par Julien1504 dans le forum Développement de jobs
    Réponses: 48
    Dernier message: 05/08/2013, 14h04
  2. [Excel] Comment lire des fichiers excel avec php?
    Par dear_rihab dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 02/11/2007, 12h38
  3. DEV-C++ et le traitement des fichiers EXCEL
    Par titos09 dans le forum Dev-C++
    Réponses: 0
    Dernier message: 22/10/2007, 17h11
  4. Réponses: 17
    Dernier message: 20/09/2005, 21h18
  5. Extraction de données sur des fichiers excel
    Par iupgeii dans le forum MFC
    Réponses: 3
    Dernier message: 23/01/2004, 13h53

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