我想通过使用VS 2012的Windows服务和Word的互操作程序集为Word 2010中的图表中的所有系列设置不同的颜色。
我知道要设置它:
Series series1.Format.Line.ForeColor.RGB = (int)XlRgbColor.xlDarkGoldenrod;
但我想设置精确的RGB值,例如(111,154,169)而不是某些预定义的颜色(甚至不是hexValues)。
我正在使用System.Drawing.Color结构找到一些方法,但是徒劳无功。
答案 0 :(得分:1)
尝试:
Series series1.Format.Line.ForeColor.RGB = System.Drawing.Color.FromArgb(111,154,169).ToArgb()
请注意,至少在Excel中,R和B值有时会反转,因此如果颜色不匹配,请尝试切换R和B组件。
经过大量的测试后,我终于想通了,这真的很简单。显然,Excel的Interop库有一个bug并且正在反转红色和蓝色值,所以我不需要传递RGB的十六进制,而是需要传递BGR,突然颜色工作得很好。我很惊讶这个错误没有记录在互联网上的任何其他地方。
因此,如果其他人遇到此问题,只需在BGR值中传递Excel值即可。 (或者,如果使用Color.FromArgb(),则传入Color.FromArgb(B,G,R))