2014-02-26 42 views
2

我想通過使用VS 2012的Windows服務和Word的互操作程序集爲Word中的圖表中的所有系列設置不同的顏色。在Word中設置圖表系列顏色

我知道設置它喜歡:

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

但我想如(111154169)設定確切的RGB值,而不是一些預定義的顏色(甚至沒有hexValues)。

我在找一些方法來使用System.Drawing.Color結構來做這件事,但徒勞無功。

回答

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))

+1

謝謝我還跟寫這個啞代碼的程度:series1.Format.Fill.ForeColor.RGB = int.Parse(Color.FromArgb(31,111,154,169).Name,System.Globalization.NumberStyles.AllowHexSpecifier); – pxm

相關問題