使用RGB值设置Excel单元格颜色

6

我想使用RGB值来设置Excel单元格,而不是像现在这样设置,因为我需要将单元格设置为特定的颜色而不是固定的标准颜色。

目前我是这样做的:

ChartRange.Interior.Color = Microsoft.Office.Interop.Excel.XlRgbColor.rgbRed;

在C#中是否可以使用RGB值设置颜色?

我正在处理由VBA中的RGB值设置的颜色的Excel表格。


1
可能是如何使用C#为单元格A1:A5填充颜色?的重复问题。 - Thomas Weller
@ThomasWeller 不这么认为,因为那个问题中没有提到使用 RGB 值。 - SBozhko
没错,但这展示了如何使用.NET颜色。而你可以用RGB值构建一个.NET颜色。 - Thomas Weller
@ThomasWeller 好的,没问题。 - SBozhko
3个回答

10

您可以使用以下方法通过 FromArgb 来分配 System.Drawing.Color

ChartRange.Interior.Color = System.Drawing.Color.FromArgb(255, 0, 0);

1
我认为那不起作用。Office使用OLE颜色,这些不是.NET颜色,对吧? - Thomas Weller
你确定吗,我认为 ChartRange.Interior.Color 需要一个 OLEColor 值而不是一个 System.Drawing.Color - pstrjds
@BalagurunathanMarimuthu 一旦它让我做,我就会做xD。 - SBozhko

8
你可以使用System.Drawing.ColorTranslator将一个System.Drawing.Color对象转换为RGB值。如下所示:
System.Drawing.Color color = System.Drawing.Color.FromArgb(255, 0, 0);
ChartRange.Interior.Color = System.Drawing.ColorTranslator.ToOle(color);

1

使用System.Drawing在.net 7中已不再可能。实际上,只需像这样设置背景颜色组件即可:

(已在C#和Microsoft Office 365中测试)

byte red = 255, green = 0, blue = 0;

ChartRange.Interior.Color = (UInt32)(red | (green << 8) | (blue << 16));

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接