Bonjour,
Je voudrait convertir une variable de type Ansistring afin de l'envoyer sur excel.
Le problème c'est que excel n'accepte que le type Variante...
Si une personne serai faire une conversion Ansistring -> Variante ???
Merci d avance
Version imprimable
Bonjour,
Je voudrait convertir une variable de type Ansistring afin de l'envoyer sur excel.
Le problème c'est que excel n'accepte que le type Variante...
Si une personne serai faire une conversion Ansistring -> Variante ???
Merci d avance
Salut jojolastar27
Que veu tu faire exactement, et si tu pouvais mettre le code qui cree le probleme ce serait plus facile
Je voudrait faire sa :
Mais le problème c'est que vValue est une variante et moi je veut envoyer un AnsiString...Code:
1
2
3
4
5
6
7
8 Variant vValue, vRange, vCell; AnsiString s; s=Edit1->Text; for(int i=1;i<5;i++) { vCell = vWorksheet.OlePropertyGet("Cells",i,1); vValue = s; vCell.OlePropertySet("Value", vValue);
Normalement le code ecrit comme ceci devrait marche (je n'ai pas teste)
ouCode:
1
2
3
4
5
6
7
8
9 Variant vValue, vRange, vCell; AnsiString s; s=Edit1->Text; for(int i=1;i<5;i++) { vCell = vWorksheet.OlePropertyGet("Cells",i,1); vValue = s.c_str(); vCell.OlePropertySet("Value", vValue);
Code:
1
2
3
4
5
6
7
8
9 Variant vRange, vCell; AnsiString s; s=Edit1->Text; for(int i=1;i<5;i++) { vCell = vWorksheet.OlePropertyGet("Cells",i,1); vCell.OlePropertySet("Value", s.c_str());
Normalement, il me semble qu'il faut utiliser WideString(), OLE travaille en caractères longs, pas en ANSI.
Mais apparemment une chaine littérale sera correctement convertie... tout comme un pointeur vers une chaine de caractèresCode:xlSheet.OlePropertySet("Name",WideString(Vagues->Tabs->Strings[i]));
Il serait intéressant de voir si C++ Builder convertit toujours correctement, ou si cela dépend, en réalité, de l'implémentation de telle ou telle fonction chez Excel et les autres...Code:
1
2 xlSheet.OlePropertySet("Name","ma feuille"); xlSheet.OlePropertySet("Name",unechaine.c_str());
Francois
j'ai tester ton premier code:
Et sa marche nikel :):)Code:
1
2
3
4
5
6
7
8 Variant vValue, vRange, vCell; AnsiString s; s=Edit1->Text; for(int i=1;i<5;i++) { vCell = vWorksheet.OlePropertyGet("Cells",i,1); vValue = s.c_str(); vCell.OlePropertySet("Value", vValue);
Merci Blondelle,tu ma aider 2 fois en une journée :merci: