VSTO: получение свойств ячеек Excel в «большом количестве»

При извлечении значений из диапазона в Excel гораздо эффективнее получать значения «в большом количестве» (как 2D-массив), чем перебирать каждую строку и столбец. Например:

Dim range = Globals.Table.Range("A1:E5")
Dim values(,) As Object = range.Value

С 25 ячейками это не имеет большого значения, но с 10 000 строк на 20 столбцов, безусловно, имеет. Все идет нормально.

У меня вопрос: нашел ли кто-нибудь способ сделать такую ​​же «массовую» выборку для других свойств? Например, я хочу найти, какие ячейки окрашены определенным образом. Я бы хотел сделать что-то вроде range.Interior.Color, но это возвращает только одно значение, а не массив значений. В итоге я зацикливаюсь, что, вероятно, в 100 или даже 1000 раз медленнее. Для больших столов это действительно убийца.

PS: Похоже, .Formula ведет себя точно так же, как .Value: я могу получить несколько файлов за раз. Но мне еще не удалось заставить цвета играть красиво.

Я ценю вашу помощь!

7
задан Michael Zlatkovsky - Microsoft 9 December 2011 в 20:47
поделиться