在Word中设置图表系列颜色

时间:2014-02-26 10:20:53

标签: c# office-interop system.drawing word-automation

我想通过使用VS 2012的Windows服务和Word的互操作程序集为Word 2010中的图表中的所有系列设置不同的颜色。

我知道要设置它:

    Series series1.Format.Line.ForeColor.RGB = (int)XlRgbColor.xlDarkGoldenrod;

但我想设置精确的RGB值,例如(111,154,169)而不是某些预定义的颜色(甚至不是hexValues)。

我正在使用System.Drawing.Color结构找到一些方法,但是徒劳无功。

1 个答案:

答案 0 :(得分:1)

尝试:

Series series1.Format.Line.ForeColor.RGB = System.Drawing.Color.FromArgb(111,154,169).ToArgb()

请注意,至少在Excel中,R和B值有时会反转,因此如果颜色不匹配,请尝试切换R和B组件。

请参阅另一个帖子的引用:Changing an Excel cell's backcolor using hex results in Excel displaying completely different color in the spreadsheet

  

经过大量的测试后,我终于想通了,这真的很简单。显然,Excel的Interop库有一个bug并且正在反转红色和蓝色值,所以我不需要传递RGB的十六进制,而是需要传递BGR,突然颜​​色工作得很好。我很惊讶这个错误没有记录在互联网上的任何其他地方。

     

因此,如果其他人遇到此问题,只需在BGR值中传递Excel值即可。 (或者,如果使用Color.FromArgb(),则传入Color.FromArgb(B,G,R))