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

Har*_*sai 1 c# excel range office-interop

我有以下代码:

Excel.Range chartRange;
chartRange = xlWorkSheet.get_Range("A3", "R3");
Run Code Online (Sandbox Code Playgroud)

我想用一种颜色来填充这一系列的细胞.我已经尝试过:

System.Drawing.Color = "yellow"
Run Code Online (Sandbox Code Playgroud)

但它抛出了一个需要对象引用的异常.

如何修复我的代码以用颜色填充这些单元格?

Tyl*_*eat 10

试试这个:

chartRange.Interior.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Yellow);
Run Code Online (Sandbox Code Playgroud)


Cod*_*ray 5

上面显示的代码问题是您无法将字符串值"Yellow"分配给该System.Drawing.Color类型.相反,标准颜色作为只读属性公开,您可以通过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);
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参阅MSDN上的此how-to文章.