2015-02-24 63 views
0

我一直在試圖找出這一段時間,但似乎無法得到任何地方。我只是試圖使用C#來更改Excel列圖表中最後一列的顏色(例如前3列藍色,最後一列橙色)。我搜索了很多論壇和Interop類的定義,但都無濟於事。無效的參數 - c#Excel Interop Series.Points()

下面是代碼:

Microsoft.Office.Interop.Excel.Series series1 = (Series)xlChart.SeriesCollection(2); 
series1.Interior.Color = newColorList[0]; 

Microsoft.Office.Interop.Excel.Point point1 = (Point)series1.Points(4); //this line throws an exception 
point1.Interior.Color = newColorList[7]; 

第三行拋出一個「無效參數」的例外,儘管我的搜索我無法弄清楚如何解決它。任何幫助表示讚賞,尤其是如果我應該採取不同的路線來改變最後一列的顏色。

在此先感謝!

+0

你使用過調試器了嗎?你也需要創建一個'Point'的新實例... – MethodMan 2015-02-24 16:38:06

+0

你可以使用series1.Points(4).Interior.Color = newColorList [7]或xlChart.SeriesCollection(2).Points(4).Interior。 Color = newColorList [7]? – 2015-02-25 19:46:49

回答

0

積分指數從1. 你確定你的圖表有第四個點嗎? 我用

((Excel.Point)((Excel.Series)expchart.Chart.SeriesCollection(iseries)).Points(ipoint)).Format.Fill.ForeColor.RGB = System.Drawing.Color.FromArgb(160, 160, 160).ToArgb(); 

它的工作原理。

+0

這是一個痛苦的單線。打破2-3線? – 2015-02-26 03:44:08

+0

這與您的原始代碼幾乎相同。 但我使用的是 point1.Format.Fill.ForeColor.RGB = Color.FromArgb(0,0,0).ToArgb();改爲 。 和我得到相同的錯誤,因爲這個點不存在。也許你應該確保系列的第四點確實存在。 – SusansusanSUSAN 2015-02-26 04:06:24

+0

謝謝Nathan!我不知道如何讓代碼出現在一行中。 – SusansusanSUSAN 2015-02-26 04:52:34