c#Excel饼图自定义颜色

c#Excel饼图自定义颜色,c#,excel,charts,C#,Excel,Charts,如何在我的excel饼图上创建自定义颜色? 我的饼图有5个部分。下面是我的源代码 using Excel = Microsoft.Office.Interop.Excel; Excel.Range chartRange; Excel.ChartObjects xlCharts = (Excel.ChartObjects)xlWorkSheet.ChartObjects(Type.Missing); Excel.ChartObject myChart = (Excel.ChartObject)x

如何在我的excel饼图上创建自定义颜色? 我的饼图有5个部分。下面是我的源代码

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

我相信您可以更改series points格式的
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;

…依此类推。

您可以更改饼图中每个点的
颜色索引,如下所示:

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
以下是可用颜色的完整列表

ColorIndex属性可以具有0到56之间的有效整数参数,用于生成颜色


有人能给你的最好建议,不一定是一条鱼,而是如何将录制的宏转换为C#再转换为终身鱼:只是要小心在Interop中宣传双点。这里有一个关于它的例子。