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

Ответы на вопрос(2)

Ваш ответ на вопрос