![](/img/trans.png)
[英]How to convert from System.Drawing.Color to Excel.ColorFormat in C#? Change comment color
[英]How to assign System.Drawing.Color to Microsoft.Office.Interop.Excel.ColorFormat
示例代码如下,
Chart.SerialsCollection(1).Point(1).Format.Fill.ForeColor = System.Drawing.Color.Red;
返回错误。 无法隐式转换类型,一个是Struct,另一个是ColorFormat。
ForeColor.RGB是Int类型,我只能从Color.Red.R,Color.Red.G和Color.Red.B中获得3个int。 如何将我想要的颜色分配给ForeColor属性?
如注释中所建议,使用ColorTranslator.ToOle
Chart.SerialsCollection(1).Point(1).Format.Fill.ForeColor.RGB = ColorTranslator.ToOle(Color.Red);
或者,输入RGB
值:
Chart.SerialsCollection(1).Point(1).Format.Fill.ForeColor.RGB = ColorTranslator.ToOle(Color.FromArgb(255, 0, 0);
一些其他信息,所以我不仅在重复这些评论:
ForeColor.RGB
可以十六进制表示为0xBBGGRR
( source )。 知道这一点,您可以创建以下功能:
public int Color_to_RGB(Color color) {
return (color.B << 16) | (color.G << 8) | Color.R;
}
采用:
Chart.SerialCollection(1).Point(1).Format.Fill.ForeColor.RGB = Color_to_RGB(Color.Red);
在另一个答案中使用ToArgb()
的原因ToArgb()
,因为其十六进制表示为0xAARRGGBB
尝试RGB属性ForeColor.RGB
例如
Chart.SerialsCollection(1).Point(1).Format.Fill.ForeColor.RGB = System.Drawing.Color.Red.ToArgb();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.