c#Excel饼图自定义颜色

如何在我的Excel饼图上创build自定义颜色? 我的饼图有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(); 

您可以像这样更改饼图中每个点的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之间的有效整数参数来生成颜色。

我相信你可以改变系列点格式的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; 

…等等。