Objet Excel sur C# [Résolu]

otavioreis 83 Messages postés jeudi 5 avril 2007Date d'inscription 4 mars 2008 Dernière intervention - 25 sept. 2007 à 17:02 - Dernière réponse : otavioreis 83 Messages postés jeudi 5 avril 2007Date d'inscription 4 mars 2008 Dernière intervention
- 27 sept. 2007 à 14:47
Bonjour,

J'ai un code en C#  que lit les cellules Excel. J'ai un objet Worksheet qui accède à la feuille Excel. Quand je compile, sur cette ligne:

"test = (

string) m_Worksheet.Cells.get_Item(i, j);"

il me donne l'erreur:
Impossible d'effectuer un cast d'un objet COM de type 'System.__ComObject' en type de classe 'System.String'. Les instances de types qui représentent des composants COM ne peuvent pas être castées en types différents représentant des composants COM ; toutefois, elles peuvent être castées

test est une variable du type string. Bref, je n'arrive pas à affecter à une variable string le contenu du objet. J'essaie de faire la conversion, mais ça ne marche pas.  Quelqu'un peut m'aider SVP?

Merci,
O. Reis
Afficher la suite 

Votre réponse

11 réponses

Meilleure réponse
Julien237 884 Messages postés vendredi 3 novembre 2000Date d'inscription 3 mars 2009 Dernière intervention - 25 sept. 2007 à 22:20
3
Merci
Normal, tu as oublié les paranthèse, comme le message d'erreur te l'indique, tu souhaite appeler la méthode.

xxx.ToString -> Objet représentant la méthode "ToString".
xxx.ToString() -> Appel de la fonction ToString, renvoie sa valeur.

Julien.

Merci Julien237 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 84 internautes ce mois-ci

Commenter la réponse de Julien237
NeuroCypher 29 Messages postés vendredi 20 janvier 2006Date d'inscription 24 octobre 2007 Dernière intervention - 25 sept. 2007 à 17:14
0
Merci
Bonjour,

Jamais vu la metode get_Item... mais bref admettons.
get_Item(i, j).ToString() renverait un string.

NeuroCypher
Commenter la réponse de NeuroCypher
otavioreis 83 Messages postés jeudi 5 avril 2007Date d'inscription 4 mars 2008 Dernière intervention - 25 sept. 2007 à 17:18
0
Merci
Merci de ton mail...

le get_Item(i, j).ToString()  n'a pas marché. J'ai le message d'erreur suivant:

Erreur 1 Impossible de convertir le groupe de méthodes 'ToString' en type non-délégué 'string'. Souhaitiez-vous appeler la méthode ? C:\OTAVIO\lireExcel\lireExcel\Excel.cs 165 20 lireExcel

Merci,
O. Reis
Commenter la réponse de otavioreis
otavioreis 83 Messages postés jeudi 5 avril 2007Date d'inscription 4 mars 2008 Dernière intervention - 26 sept. 2007 à 10:20
0
Merci
ça a marché!!!

Merci bcp!!!

O. Reis
Commenter la réponse de otavioreis
cs_Bidou 5507 Messages postés dimanche 4 août 2002Date d'inscription 20 juin 2013 Dernière intervention - 26 sept. 2007 à 12:25
0
Merci
xxx.ToString -> Objet représentant la méthode "ToString".

<hr />
-My Blog-
Commenter la réponse de cs_Bidou
Julien237 884 Messages postés vendredi 3 novembre 2000Date d'inscription 3 mars 2009 Dernière intervention - 26 sept. 2007 à 14:17
0
Merci
Oui, xxx.ToString est utilisable dans un contexte de delegate, comme par exemple ici :

delegate string ToStringDelegate();

       int a = 5;
       ToStringDelegate t = a.ToString;
       Console.WriteLine(t());

Ma description n'est pas très précise parce que ce n'est pas le but, mais j'ai rien dis de faux non ?

Julien.
Commenter la réponse de Julien237
NeuroCypher 29 Messages postés vendredi 20 janvier 2006Date d'inscription 24 octobre 2007 Dernière intervention - 26 sept. 2007 à 14:36
0
Merci
Ben c'est un pointeur vers une methode dans ton cas present

NeuroCypher
Commenter la réponse de NeuroCypher
cs_Bidou 5507 Messages postés dimanche 4 août 2002Date d'inscription 20 juin 2013 Dernière intervention - 26 sept. 2007 à 17:36
0
Merci
Pointeur sur une fonction, oui.
"Objet représentant une méthode... ", pas très clair

<hr />
-My Blog-
Commenter la réponse de cs_Bidou
Julien237 884 Messages postés vendredi 3 novembre 2000Date d'inscription 3 mars 2009 Dernière intervention - 26 sept. 2007 à 18:04
0
Merci
Non c'est vrai, pas très clair.
Maintenant, bien que je reconnaisse mon tort, il faut avouer que dans un langage où les variables objets sont des types références (la variable est un pointeur vers l'objet et non l'objet lui-même, comme en Java, mais pas comme en C), il faut bien dire que la confusion est facile entre un objet représentant x et un pointeur vers x. Surtout lorsque l'on peut faire des assignations telles que

ToStringDelegate

t = a.ToString;

Mais pas :

IntPtr

ptr = a.ToString;
Le débuggeur parle de "Method group", je ne sais pas exactement comment c'est défini...

<hr width="100%" size="2" />Julien.
Commenter la réponse de Julien237
Julien237 884 Messages postés vendredi 3 novembre 2000Date d'inscription 3 mars 2009 Dernière intervention - 26 sept. 2007 à 18:07
0
Merci
Seigneur, pouquoi une telle différence de mise en page entre la FreeTextBox et le rendu dans le forum ?!
Bon, recopiage sans la mise en forme de VS :

...
Surtout lorsque l'on peut faire des assignations telles que

ToStringDelegate

t = a.ToString;

Mais pas :

IntPtr ptr = a.ToString;

Le débuggeur parle de "Method group", je ne sais pas exactement comment c'est défini...

<hr width="100%" size="2" />Julien.
Commenter la réponse de Julien237
otavioreis 83 Messages postés jeudi 5 avril 2007Date d'inscription 4 mars 2008 Dernière intervention - 27 sept. 2007 à 14:47
0
Merci
UP!!! En fait ça n'a pas marché...
test = m_Worksheet.Cells.get_Item(i, j).ToString();

sur cette ligne, il me sort "System.object" comme valeur de la variable test

O. Reis
Commenter la réponse de otavioreis

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.