好的,所以我正在尝试获取单元格的字体颜色,因为程序需要根据单元格中的字体颜色执行不同的操作,所以我制作了一个测试文件。
我尝试这样访问它:
Range thrange = ws.UsedRange.Columns["A:A", Type.Missing].Rows;
foreach (Range r in thrange)
{
Style sy = r.Style;
Font font = sy.Font;
ColorFormat color = (ColorFormat)font.Color;
Console.WriteLine(" "+r.Value+" " + color.RGB);
}
我遇到了一个问题:
无法将类型“double”转换为“Microsoft.Office.Interop.Excel.ColorFormat”
我看到有人说要使用绘图对象来设置颜色,所以我尝试将最后两行改为:
Color color =(System.Drawing.Color)font.Color;
Console.WriteLine(" "+r.Value+" " + color.ToArgb());
但是这也没用,错误消息是:无法将类型“double”转换为“System.Drawing.Color”
所以我想查看一下这个double是什么,然后把字体设置为已知的RGB值,并计算如何将我得到的数字转换为该值。 但是这也没有起作用,因为虽然Console.WriteLine(" "+r.Value+" "+r.style.font.color);
没有出错,但它仍然没有给我任何有用的东西:
cyan 0
pink 0
blue 0
red 0
orange 0
purple 0
我认为可能是r.style.font.colorindex
,但这只给了我一个1代替0
blue 0000ff
red ff0000
由于项目所有者制定的规则,我不能使用第三方库。
那么我如何获取实际的颜色值呢?