Feuille de calcul get_Range throws exception
Je suis à l'aide de C# pour manipuler une feuille de calcul Excel. Les deux morceaux de code devrait fonctionner de la même, mais l'un fonctionne et l'autre déclenche une exception. Je me demande pourquoi.
Cela fonctionne:
oRange = (Excel.Range)oSheet.get_Range("A1","F1");
oRange.EntireColumn.AutoFit();
Cela déclenche une exception:
oRange = (Excel.Range)oSheet.get_Range(oSheet.Cells[1, 1],oSheet.Cells[4,4]);
oRange.EntireColumn.AutoFit();
Exception:
RuntimeBinderException occurred. "object" does not contain a definition for 'get_Range'
La oSheet
est instancié comme suit:
Excel.Worksheet oSheet = new Excel.Worksheet();
Suis-je censé pour instancier les deux différemment?
- Il ressemble, le "oSheet" est une fois entré, en tant que Feuille de calcul et une fois en tant qu'Objet.
- D'accord avec ce qui précède. Vous pouvez poster comment oSheet est instancié dans les deux cas?
- le code affiché
Vous devez vous connecter pour publier un commentaire.
Il ressemble à une exception est levée à partir de la
oSheet.Cells[1, 1]
etoSheet.Cells[4, 4]
utilisés comme arguments pourget_range
.L'application de la suivante, aucune exception n'est levée:
Il pourrait donc être liée à la
oSheet.get_Range
fonctionnalité. Il reçoit un objet en argument, par conséquent, il pourrait essayer d'invoquer unget_Range
méthode sur les arguments de recevoir à l'intérieur de la cellule, et la fonte deRange
pour objet fait par le compilateur peut masquer l'appel de la méthode.Si vous avez besoin de la définition de cellules par ligne/colonne - essayez d'utiliser l'approche décrite ci-dessus.
Utiliser la Plage de Feuille de calcul de propriété à la place.
Par exemple, au lieu de
utilisation
J'ai été en utilisant le get_Range() la méthode beaucoup quand j'ai utilisé hors tension .NET 2. Quand j'ai changé pour .NET 4 Profil du Client, j'ai eu cette exception. Remplacement de la get_Range() références de la Gamme bien abordé cette question pour moi.
J'avais mis à jour mon VS C# projet de .Net Framework 3.5-4.5.
Une fois que j'avais mis à niveau avec succès, j'ai eu cet "objet" ne contient pas une définition pour 'get_Range' exception lorsque vous essayez de générer un rapport excel.
Ce que j'ai fait, c'est plutôt de l'aide de code ci-dessous
J'ai réécrit à
Et cela a fonctionné.
Pour tous ceux qui ont ce problème, beaucoup mieux l'utilisation de la conversion explicite, plutôt que de créer de nouvelles variables.