Исключение при доступе к FormatCondition с использованием VS2010 и Excel 2010 - PullRequest
2 голосов
/ 16 октября 2011

При попытке получить доступ к элементу FormatCondition из коллекции FormatConditions я получаю следующее исключение:

Невозможно привести объект COM типа 'System .__ ComObject' к типу интерфейса 'Microsoft.Office.Interop.Excel.FormatCondition.Эта операция завершилась неудачно, поскольку вызов QueryInterface в компоненте COM для интерфейса с IID '{00024425-0000-0000-C000-000000000046}' завершился ошибкой из-за следующей ошибки: такой интерфейс не поддерживается (Исключение из HRESULT: 0x80004002 (E_NOINTERFACE)).

Я использую VS2010 SP1, C #, Excel 2010 32-битный

До сих пор я создал таблицу Excel и добавил условное форматирование в ячейку B3.

В коде I:

  1. откройте электронную таблицу.
  2. получите ячейку b3
  3. и убедитесь, что FormatConditions.Count возвращает 1.

IПолучите указанное выше исключение, когда я попробую следующее:

fmtCond = (Excel.FormatCondition) testCell.FormatConditions.Item(1);

Код, который я использую, кажется, работает нормально при сборке с VS2005 и Excel 2007 на другом ПК.

1 Ответ

0 голосов
/ 17 октября 2011

Вместо того, чтобы пытаться собрать все условия форматирования вместе, я обнаружил, что это работает, когда вы устанавливаете свойства индивидуально:

DestRange.FormatConditions.Add(Excel.XlFormatConditionType.xlCellValue, SourceRange.FormatConditions(1).Operator, SourceRange.FormatConditions(1).Formula1)

DestRange.FormatConditions(1).Interior.ColorIndex = SourceRange.FormatConditions(1).Interior.ColorIndex

, где DestRange и SourceRange - это регион, в котором вы находитесьпередача свойств и исходный диапазон, соответственно.Вам может потребоваться получить дополнительные свойства FormatConditions, если вы их указали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...