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

Langage Delphi Discussion :

Enregistrer des données sous Excel à partir d'un programme Delphi


Sujet :

Langage Delphi

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Février 2009
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2009
    Messages : 41
    Points : 31
    Points
    31
    Par défaut Enregistrer des données sous Excel à partir d'un programme Delphi
    Bonjour,
    Je suis en train d'écrire un programme qui manipule des matrices. Pour pouvoir le déboguer facilement, je souhaiterais enregistrer ces matrices dans des fichiers Excel (pour une question de lisibilité).
    Mon programme enregistre bien les données de ma matrice dans le fichier Excel mais Excel me demande à chaque fois si je souhaite bien enregistrer les modifications apportées au fichier, ce qui est lourd. Je souhaiterais enregistrer automatiquement.

    Voilà mon code :

    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
    procedure ConnexionExcel(var vMSExcel : variant);
    begin
      try
        vMSExcel := GetActiveOleObject('Excel.Application');
       except
        vMSExcel := CreateOleObject('Excel.Application');
      end;
    end;
     
    procedure OuvertureFichierExcel(var vMSExcel,vXLWorkbook, vXLWorkbooks : variant;aFileName : AnsiString);
    begin
      //vMSExcel.Visible := true;
      vXLWorkbooks := vMSExcel.Workbooks;
      vXLWorkbook  := vXLWorkbooks.Open(aFileName);
    end;
     
     
     
    procedure EcrireTableau_E2(aFileName : AnsiString);
    var
       vMSExcel : variant;
       vXLWorkbook, vXLWorkbooks : variant;
       aSheetName : AnsiString;
       vWorksheet : variant;
       aRange, aValue : AnsiString;
       vCell : variant;
       i,j : integer;
    begin
        ConnexionExcel(vMSExcel);
        OuvertureFichierExcel(vMSExcel,vXLWorkbook,vXLWorkbooks,aFileName );
     
        aSheetName := 'Feuil1';
        vWorksheet := vXLWorkbook.WorkSheets[aSheetName];
     
        // écriture des données du tableau E2
       {...}
     
       // j'ai essayé différentes fonctions comme :
       // vMSExcel.Save;
       // vMSExcel.ActiveWorkBook.SaveAs('c:\E2.xslx');
       // mais ça plante à chaque fois
        vMSExcel.Quit;
        vMSExcel := unassigned;
     
    end;
    Connaissez-vous une fonction permettant de résoudre ce problème?
    Merci.

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Février 2009
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2009
    Messages : 41
    Points : 31
    Points
    31
    Par défaut
    J'ai trouvé il suffisait de mettre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    procedure ConnexionExcel(var vMSExcel : variant);
    begin
      try
        vMSExcel := GetActiveOleObject('Excel.Application');
       except
        vMSExcel := CreateOleObject('Excel.Application');
      end;
      vMSExcel.DisplayAlerts:=False; // ajout de ligne
    end;

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

Discussions similaires

  1. Mise en forme des données sous Excel
    Par mhamedbj dans le forum Cognos
    Réponses: 2
    Dernier message: 27/08/2011, 16h00
  2. Réponses: 5
    Dernier message: 16/03/2010, 13h48
  3. Réponses: 0
    Dernier message: 22/02/2010, 08h35
  4. Réponses: 10
    Dernier message: 06/06/2007, 18h19

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