Я пытаюсь получить цвет фона некоторых ячеек на листе Excel в C #.
Я использую следующий код:
Excel.Range r = (Excel.Range)m_objRange[i, j];
int decValue = int.Parse(r.Interior.Color.ToString());
string hexValue = decValue.ToString("X");
Итак, я получаю длинное десятичное значение, а затем конвертирую в шестнадцатеричное, чтобы использовать его в HTML-коде.
Теперь у меня проблема с получением правильных цветов. Например:
Дело 1.
Фактический цвет-красный
Возвращаемое десятичное значение-255
Соответствующее шестнадцатеричное значение - FF (или 0000FF)
Соответствующий цвет, который я получил - Синий
Дело 2.
Фактический цвет - синий
Возвращаемое десятичное значение-16711680
Соответствующее шестнадцатеричное значение - FF0000
Соответствующий цвет, который я получил - Красный
Дело 3.
Фактический цвет-зеленый
Возвращаемое десятичное значение-32768
Соответствующее значение Hex - 8000
Соответствующий мне цвет - Белый
Теперь в случае 1, я думаю, мне следует интерпретировать шестнадцатеричное значение FF как # FF0000, чтобы получить его как красный?
В случае 3, я должен интерпретировать шестнадцатеричное значение 8000 как # 008000, чтобы получить зеленый?
Есть ли способ, где я могу напрямую получить шестизначное шестнадцатеричное значение, которое будет именно того цвета, который я хочу?
Я получаю неправильные десятичные значения или неправильно преобразовываю десятичное число в шестнадцатеричное?
А что происходит в случае 2? Здесь я получаю шестизначное шестнадцатеричное значение, но оно совершенно неверно. FF0000 явно красный, а не синий.