2017-08-15 8 views
0

私のExcelの円グラフでカスタムカラーを作成するには? 私の円グラフは5スライスです。以下は私のソースコードです。c#Excel円グラフカスタムカラー

using Excel = Microsoft.Office.Interop.Excel; 
Excel.Range chartRange; 

Excel.ChartObjects xlCharts = (Excel.ChartObjects)xlWorkSheet.ChartObjects(Type.Missing); 
Excel.ChartObject myChart = (Excel.ChartObject)xlCharts.Add(10, 80, 500, 350); 
Excel.Chart chartPage = myChart.Chart; 

chartRange = xlWorkSheet.get_Range("A3", "B7");    
chartPage.ChartStyle = 209; 
chartPage.HasTitle = true; 
chartPage.ChartTitle.Text = "HeaderText Title"; 
chartPage.SetSourceData(chartRange, misValue);    
chartPage.ChartType = Excel.XlChartType.xl3DPieExploded; 
chartPage.Elevation = 35; 
chartPage.ApplyDataLabels(Excel.XlDataLabelsType.xlDataLabelsShowLabelAndPercent ,false, true, true, false, true, false, true, true, Separator:System.Environment.NewLine); 

xlWorkBook.SaveAs(saveAsLocation); 
xlWorkBook.Close(true, misValue, misValue); 
xlApp.Quit(); 
+0

誰かがあなたに与えることができる最高のアドバイスは、必ずしも魚ではありませんが、記録されたマクロをC#に変身させて生活の中で魚に変換する方法です。https://blogs.msdn.microsoft.com/csharpfaq/2010/09/27/converting-a-vba-macro-to-c-4-0/ –

答えて

1

あなたはこのようなあなたの円グラフの各点のColorIndex変更することができます。ここでは

var series = (Excel.SeriesCollection)chartPage.SeriesCollection(); 
series.Item(1).Points(1).Interior.ColorIndex = 3; //Red 
series.Item(1).Points(2).Interior.ColorIndex = 4; //Green 
series.Item(1).Points(3).Interior.ColorIndex = 5; //Blue 
series.Item(1).Points(4).Interior.ColorIndex = 6; //Yellow 
series.Item(1).Points(5).Interior.ColorIndex = 7; //Magenta 

msdn

ColorIndexプロパティが間に有効な整数の引数を持つことができる利用可能な色の完全なリストであります0と56を生成する。

0

ForeColorプロパティをシリーズポイント形式で変更できると思います。次のようなもの:

var series = (Excel.SeriesCollection)chartPage.SeriesCollection(); 
var points = (Excel.Points)series.Item(1).Points(); 
points.Item(1).Format.Fill.ForeColor.RGB = (int)Excel.XlRgbColor.rgbRed; 
points.Item(2).Format.Fill.ForeColor.RGB = (int)Excel.XlRgbColor.rgbBlue; 

...など。

+0

Interopでダブルドットを宣伝するだけで十分です。ここに[posts](https://stackoverflow.com/questions/29067714)の[カップル](https://stackoverflow.com/questions/13069153)があります。 –