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

C++Builder Discussion :

Enregistrer un StringGrid au format xls


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 12
    Par défaut Enregistrer un StringGrid au format xls
    Bonjour, je développe sous C++ builder 6 et mon appli comporte un stringgrid. Je voudrais l'enregistrer entièrement au format xls ou autre de façon à pouvoir l'ouvrir sur ecxel. Comment faire?
    merci.

  2. #2
    Membre Expert
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Par défaut
    Tu peux générer ton document EXCEL en manipulant directement EXCEL via OLE.

    Tu peux allez voir ici ou pour plus d'informations...

    Si tu veux simplement pouvoir l'ouvrir avec EXCEL, tu peux générer un simple fichier CSV, chose qui est plutôt simple.

  3. #3
    Membre Expert
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Par défaut
    Pour générer un CSV, voilà une fonction toute faite:
    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
    void StringGrid2CSV( TStringGrid *grid, AnsiString filename, char separator )
    {
      TStringList *csv = new TStringList();
      for( int i=0; i< grid->RowCount; i++ )
      {
        AnsiString ligne = "" ;
        for( int j=0; j< grid->ColCount; j++)
        {
          ligne = ligne + grid->Cells[j][i] + AnsiString(separator) ;
        }
        csv->Add( ligne ) ;
      }
      csv->SaveToFile( filename ) ;
      delete csv ;
    }
    Utilisation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      StringGrid2CSV( StringGrid1, "C:\\MonFichierCSV.csv" , ',' ) ;

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2010
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 265
    Par défaut
    Fonction intéressante mais j'ai une erreur lors de la compilation :

    [C++ Erreur] Unit1.cpp(245): E2268 Appel à une fonction non définie 'StringGrid2CSV'

    Etrange....

  5. #5
    Membre émérite
    Avatar de free07
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    941
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 941
    Par défaut
    Citation Envoyé par dekalima Voir le message
    Fonction intéressante mais j'ai une erreur lors de la compilation :

    [C++ Erreur] Unit1.cpp(245): E2268 Appel à une fonction non définie 'StringGrid2CSV'

    Etrange....

    Tu a simplement oublié de déclarer la fonction dans ton .h
    void StringGrid2CSV( TStringGrid *grid, AnsiString filename, char separator );

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2010
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 265
    Par défaut
    Oui j'avais oublié et après j'ai déconnecté. Toujours est-il que j'ai une autre erreur:

    [Lieur Erreur] Unresolved external 'TForm1::StringGrid2CSV(Grids::TStringGrid *, System::AnsiString, char)' referenced from C:\USERS\ARNAUD\DESKTOP\TUTO\UNIT1.OBJ

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2003
    Messages : 38
    Par défaut
    Citation Envoyé par sat83 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void StringGrid2CSV( TStringGrid *grid, AnsiString filename, char separator )
    Utilisation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      StringGrid2CSV( StringGrid1, "C:\\MonFichierCSV.csv" , ',' ) ;
    Mais comment cela peut-il marcher chez vous ? Chaque fois que j'ai essayé de passer une TStringGrid en paramètres à une fonction, notamment de cette façon, j'ai eu un superbe message d'erreur du compilateur "les classes de style VCL doivent être construites en utilisant l'opérateur new" ??? Du coup j'y avais renoncé ! Et d'ailleurs j'ai toujours ce message...

  8. #8
    Membre émérite
    Avatar de free07
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    941
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 941
    Par défaut
    Citation Envoyé par pjtuloup Voir le message
    Mais comment cela peut-il marcher chez vous ? Chaque fois que j'ai essayé de passer une TStringGrid en paramètres à une fonction, notamment de cette façon, j'ai eu un superbe message d'erreur du compilateur "les classes de style VCL doivent être construites en utilisant l'opérateur new" ??? Du coup j'y avais renoncé ! Et d'ailleurs j'ai toujours ce message...
    Dans l'exemple donné, c'est un pointeur sur l'objet qui est passé en paramètre, est ce que tu déclares bien un pointeur sur ton objet, c'est peut être la ton problème... ?

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

Discussions similaires

  1. [Débutant] Enregistrer au format .xls en ayant Excel 2007
    Par kryztof dans le forum MATLAB
    Réponses: 12
    Dernier message: 18/08/2009, 15h57
  2. XP "enregistrer l'image sous" : formats disparus !
    Par NEXUS6 dans le forum Windows XP
    Réponses: 7
    Dernier message: 18/12/2005, 11h08
  3. [VBA-E] Enregistrer sous un autre format
    Par Bashaq dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 14/10/2005, 23h33
  4. lecture de fichier au format xls via un prog C++
    Par lepoutho dans le forum C++
    Réponses: 9
    Dernier message: 08/09/2005, 10h23
  5. [GLScene] Comment enregistrer une image au format TGA
    Par Invité dans le forum API, COM et SDKs
    Réponses: 1
    Dernier message: 27/05/2005, 15h12

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