2009-03-13 8 views
2

Я пишу приложение, которое использует сборку Microsoft.Office.Interop.Excel для экспорта/импорта данных из электронных таблиц Excel. Все шло отлично (за исключением 1 индексации и всех этих необязательных параметров!), Пока я не попытался использовать условное форматирование. Когда я вызываю Range.FormatConditions.Add, я получаю исключение MissingMethodException, говорящее мне, что такой метод не существует. Это происходит как в Vista, так и в XP.Excel Interop: Range.FormatConditions.Add бросает MissingMethodException

Вот пример кода, который генерирует исключение:

//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); 
    } 
} 

ответ

0

Надстройка() для интерфейса FormatConditions имеет 8 параметров, а не 4 . AFAIK не существует метода расширения в пространстве имен Excel.Extensions для этого типа. Вы использовали метод расширения в примере выше или ...?

+0

В последнее время я не работал с Excel, но IIRC подписи метода для 'Add' был изменен на 8 параметров в версии 12 библиотек взаимодействий Excel. Office 2007 позволяет получить доступ через версию 11. В версии 11 подпись - 4 параметра. Компиляция против версии 11 (для обратной совместимости) заставляет вас использовать 4 параметра, но на самом деле не работает во время выполнения. Это была ошибка, с которой я столкнулся. Использование рефлексии, как показано в ссылке Гэвина Миллера, позволило решить проблему. –

 Смежные вопросы

  • Нет связанных вопросов^_^