问题在C#中获取Excel单元格背景颜色 [英] Problem with getting Excel cell background colors in C#
问题描述
我试图得到一些细胞的背景颜色在一个Excel工作表在C#中。我使用follwoing它的代码
:
I am trying to get background color of some cells in an Excel sheet in C#. I am using follwoing code for it:
Excel.Range r = (Excel.Range)m_objRange[i, j];
int decValue = int.Parse(r.Interior.Color.ToString());
string hexValue = decValue.ToString("X");
所以我得到的长十进制值,然后我转换为十六进制用它到HTML代码。
现在我已经得到正确的颜色有问题。例如:
So i get the long decimal value and then i convert into hex to use it into an html code. Now i have a problem in getting the right colors. For example:
案例1
实际颜色 - 红色
返回十进制值-255
Returned Decimal value-255
Corresponing十六进制值 - FF(或0000FF)
Corresponing Hex value- FF (or 0000FF)
Corresponing颜色我GOT-蓝
Corresponing color i got- Blue
案例2。
实际的颜色 - 蓝色
返回十进制值16711680
Returned Decimal value-16711680
Corresponing十六进制值 - FF0000
Corresponing Hex value- FF0000
Corresponing颜色我GOT-红
Corresponing color i got- Red
案例3。
实际颜色 - 绿色
返回十进制值32768
Returned Decimal value-32768
Corresponing十六进制值 - 8000
Corresponing Hex value- 8000
Corresponing颜色我的GOT白
Corresponing color i got- White
现在的情况下,1,我想我应该解释FF的十六进制值#FF0000得到它红?
如果3,我应该解释8000十六进制值#008000得到的是一个绿色的?
Now in case 1, i guess i should interpret hex value of FF as #FF0000 to get it as red? In case 3, i should interpret hex value of 8000 as #008000 to get is a green?
有没有一种方法,我可以直接拿到六位数十六进制值这将是正是我想要的颜色?
我正在错误的十进制值或我不是十进制转换为十六进制正确?
Is there a way where i can directly get six digit hex value which would be exactly the color that i want? I am getting wrong decimal values or I am not converting decimal into hex properly?
和什么是在第2种情况发生?在这里,我得到六位数的十六进制值,但它是完全错误的。 。FF0000显然是红色,而不是蓝色
And what is happening in Case 2? Here i am getting six digit hex value but it is completely wrong. FF0000 is clearly red and not blue.
推荐答案
这工作对我来说:
This work for me:
int colorNumber = System.Convert.ToInt32(((Range) worksheet.Cells[rowNumber,columnNumber]).Interior.Color);
Color color = System.Drawing.ColorTranslator.FromOle(colorNumber);
这篇关于问题在C#中获取Excel单元格背景颜色的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!