如何使用C#填充I单元格A1:A5的颜色?

我有以下代码:

Excel.Range chartRange; chartRange = xlWorkSheet.get_Range("A3", "R3"); 

我想用一种颜色填充这个单元格的范围。 我已经尝试过:

 System.Drawing.Color = "yellow" 

但它抛出了一个exception,需要一个对象引用。

我怎样才能修复我的代码来填充这些单元格的颜色?

尝试这个:

 chartRange.Interior.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Yellow); 

上面显示的代码的问题是,您不能将string值“黄色”分配给System.Drawing.Colortypes。 相反,标准颜色作为只读属性显示 ,您可以通过Color结构访问它们。 完整列表在文档中给出。

Excel互操作使事情变得复杂一些,因为您需要将这些颜色值转换为OLE颜色。 您可以使用ColorTranslator.ToOle方法执行此操作。

因此,例如,您需要将以下行添加到您的原始代码:

 Excel.Range chartRange; chartRange = xlWorkSheet.get_Range("A3", "R3"); chartRange.Interior.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Yellow); 

有关更多信息,请参阅MSDN上的这篇how-to文章 。

您直接将颜色分配给Excel互操作无法理解的工作表variables。

因此,您需要使用colorTranslator.ToOle方法将这些颜色值转换为OLE值,或者使用Excel对其进行着色。 提供了两种方式。

 xlWorkSheet.get_Range(xlWorkSheet.Cells[2, 2], xlWorkSheet.Cells[2, 4]).Interior.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Green); 

其他

 xlWorkSheet.get_Range(xlWorkSheet.Cells[2, 3], xlWorkSheet.Cells[2, 3]).Interior.Color = Excel.XlRgbColor.rgbRed; 

这里的xlWorksheet是Excel工作表对象的对象。

get_Range需要2个variables,一个起始单元,另一个是终止单元。

所以如果你指定两个值相同,那么只有一个单元格被着色。

xlWorkSheet.cells [row,column]用来指定一个单元格。

System.Drawing.ColorTranslator.ToOle(SystemDrawing.Color.Green)用于定义OLE格式的颜色。

Excel.XlRgbColor.rgbRed是一个Excel单元格着色的方法这种方法可以访问大量的颜色,可以在这里find颜色列表