Excel Interop - быстрое применение цвета ячеек - PullRequest
0 голосов
/ 08 января 2020

У меня есть большой массив полных значений цвета оле, которые мне нужно применить к ячейкам в листе Excel.

Они могут быть применены с простым для l oop. псевдокод:

 for (int k = 0; k < oleColorArray.Count; k++){
   worksheet.Cells[1, k].Interior.Color = oleColorArray[k];
 }

Однако этот подход медленный, даже после отключения ScreenUpdating. У меня есть около 1500 записей, и это может занять до минуты.

Поскольку значения в массиве все разные, я не могу раскрасить весь диапазон.

Я видел что значения ячеек могут быть применены непосредственно из 2D-массива, используя

range.set_Value(); or range.Value()

Microsoft.Office.Interop.Excel очень медленно

Есть ли подобный способ применить массив оле цветов, если нет, то есть ли более быстрый подход, который я пропускаю?

1 Ответ

1 голос
/ 08 января 2020

Вы пытались использовать функцию параметров условного форматирования вместо кодирования VBA? Любая причина, по которой вы не можете использовать условное форматирование и вынуждены использовать VBA?

Условное форматирование можно настроить так, чтобы его лог c строился из одной ячейки или диапазона и мог применяться к диапазонам Вы ищете цветовой код.

...