我有以下代码:如何用C#填充I颜色的单元格A1:A5?
Excel.Range chartRange;
chartRange = xlWorkSheet.get_Range("A3", "R3");
我想填补这一范围细胞与一种颜色。我已经尝试过:
System.Drawing.Color = "yellow"
但它抛出一个异常,需要一个对象引用。
如何修复我的代码以填充这些单元格的颜色?
我有以下代码:如何用C#填充I颜色的单元格A1:A5?
Excel.Range chartRange;
chartRange = xlWorkSheet.get_Range("A3", "R3");
我想填补这一范围细胞与一种颜色。我已经尝试过:
System.Drawing.Color = "yellow"
但它抛出一个异常,需要一个对象引用。
如何修复我的代码以填充这些单元格的颜色?
试试这个:
chartRange.Interior.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Yellow);
与上面显示你的代码的问题是,你不能将字符串值“黄色”分配给System.Drawing.Color
类型。相反,标准颜色以只读属性公开,您可以通过Color
结构访问该属性。完整列表在documentation中给出。
Excel互操作使事情变得更加复杂一些,因为您需要将这些颜色值转换为OLE颜色。你使用ColorTranslator.ToOle
method来做到这一点。
因此,举例来说,你需要下面一行添加到您的原代码:
Excel.Range chartRange;
chartRange = xlWorkSheet.get_Range("A3", "R3");
chartRange.Interior.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Yellow);
有关详细信息,在MSDN上也咨询this how-to article。
您直接将颜色分配给Excel互操作无法理解的工作表变量。
因此,您需要通过使用colorTranslator.ToOle方法或使用Excel着色它的方式将这些颜色值转换为OLE值。提供了两种方式。
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个可变的启动单元,另一个是末端单元。
所以如果你指定两个值相同,那么只有一个单元格被着色。
xlWorkSheet.cells [row,column]用于指定单元格。
System.Drawing.ColorTranslator.ToOle(SystemDrawing.Color.Green)用于定义OLE格式的颜色。
Excel.XlRgbColor.rgbRed是着色单元 的Excel的方法这种方法可以访问大量的颜色,可以在这里找到list of colors
Oh.Thanks !!!!它运作良好。 – Harikasai 2011-02-04 04:22:49