Вы можете использовать объект диапазона Excel для доступа ко всем настройкам конфигурации ячейки.
, например:
Worksheet sheet = excelApp.ActiveWorkbook.ActiveSheet;
Range r = sheet.Cells[1, 1];
MessageBox.Show(r.Value2 + "\n" + r.Text + "\n" + r.NumberFormat);
r.Value2 содержит значение подчеркивания ячейки (формула).
r.Text содержит видимое (пользовательское) значение ячейки (результат).
r.NumberFormat содержит строку формата - в вашем примере она будет содержать «[Red]#, ## 0,00 ".
Оттуда вам нужно будет использовать любые методы манипуляции со строками для члена NumberFormat (я рекомендую регулярное выражение), чтобы найти нужный вам цвет или любую другую вещь.
РЕДАКТИРОВАТЬ , здесь приведено некоторое использование regExp и TypeCovertor для выполнения преобразования строки в объект Color.(с продолжением к указанному выше источнику)
string formatString = r.NumberFormat;
Regex colorRegExp = new Regex(@"^\[(?<color>\S+)\]", RegexOptions.Compiled);
Color resultColor;
System.ComponentModel.TypeConverter converter = System.ComponentModel.TypeDescriptor.GetConverter(new Color());
Match m = colorRegExp .Match(formatString);
if (true == m.Success)
{
string colorString = m.Groups["color"].Value;
resultColor = (Color)converter.ConvertFromString(colorString);
}
Объект регулярного выражения компилируется в сборку для производительности.Я предполагаю, что использование объекта Color resultColor
- это то, что вы можете понять сами (в нем есть ARGB и другие члены для изучения).
И последний комментарий, вы можете легко уменьшить количество строк в этом примере, я просто хотелподчеркнуть каждый шаг на пути.