Проблема с получением цветов фона ячейки Excel в C #
Я пытаюсь получить цвет фона некоторых ячеек в листе 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 явно красный, а не синий.