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)
上面显示的代码问题是您无法将字符串值"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文章.