2009-03-13 8 views
2

J'écris une application qui utilise l'assembly Microsoft.Office.Interop.Excel pour exporter/importer des données à partir de feuilles de calcul Excel. Tout allait bien (sauf pour 1 indexation et tous ces paramètres optionnels!), Jusqu'à ce que j'ai essayé d'utiliser le formatage conditionnel. Lorsque j'appelle Range.FormatConditions.Add, j'obtiens une exception MissingMethodException m'indiquant qu'aucune telle méthode n'existe. Cela se produit à la fois dans Vista et XP.Excel Interop: Range.FormatConditions.Add throws MissingMethodException

Voici un exemple du code qui génère l'exception:

//1. Add a reference to Microsoft.Office.Interop.Excel (version 11.0.0.0) 
//2. Compile and run the following code: 

using Microsoft.Office.Interop.Excel; 

class Program 
{ 
    static void Main(string[] args) 
    { 
     Application app = new Application(); 
     Workbook workbook = app.Workbooks[1]; 
     Worksheet worksheet = (Worksheet)workbook.Worksheets[1]; 
     Range range = worksheet.get_Range("A1", "A5"); 
     FormatCondition condition = range.FormatConditions.Add(
      XlFormatConditionType.xlCellValue, 
      XlFormatConditionOperator.xlBetween, 
      100, 
      200); 
    } 
} 

Répondre

0

La méthode Add() pour l'interface de FormatConditions a 8 paramètres, pas 4 AFAIK il n'y a pas de méthode d'extension dans l'espace de noms Excel.Extensions pour ce type. Avez-vous utilisé une méthode d'extension dans l'exemple ci-dessus ou ...?

+0

Je n'ai pas travaillé avec Excel interop dernièrement, mais IIRC la signature de méthode pour 'Add' changé à 8 paramètres dans la version 12 des bibliothèques interop Excel. Office 2007 autorise l'accès via la version 11. Dans la version 11, la signature est de 4 paramètres. Compiler avec la version 11 (pour la rétrocompatibilité) vous oblige à utiliser 4 paramètres, mais ne fonctionne pas réellement au moment de l'exécution. C'était l'erreur que je vivais. L'utilisation de la réflexion comme indiqué par le lien fourni par Gavin Miller a résolu le problème. –

Questions connexes