问题在C#中获取Excel单元格背景颜色 [英] Problem with getting Excel cell background colors in C#

查看:2251
本文介绍了问题在C#中获取Excel单元格背景颜色的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图得到一些细胞的背景颜色在一个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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆