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.
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.
Pour générer un CSV, voilà une fonction toute faite:
Utilisation :
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 ; }
Code : Sélectionner tout - Visualiser dans une fenêtre à part StringGrid2CSV( StringGrid1, "C:\\MonFichierCSV.csv" , ',' ) ;
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....
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
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...
Partager