How to set Sunburst chart series colors in .NET Excel Library

14 Aug 20268 minutes to read

The following code shows how to assign custom colors to each data point in a Sunburst chart with Syncfusion XlsIO.

using (ExcelEngine excelEngine = new ExcelEngine()) { IApplication application = excelEngine.Excel; application.DefaultVersion = ExcelVersion.Xlsx; IWorkbook workbook = application.Workbooks.Open("../../../Data/Input.xlsx"); IWorksheet worksheet = workbook.Worksheets[0]; //Initialize chart IChartShape chart = worksheet.Charts.Add(); chart.ChartType = ExcelChartType.SunBurst; //Assign data chart.DataRange = worksheet["A1:B13"]; chart.IsSeriesInRows = false; //Apply chart elements //Set Chart Title chart.ChartTitle = "Transfer Summary"; //Set Data labels IChartSerie series = chart.Series[0]; series.DataPoints.DefaultDataPoint.DataLabels.IsCategoryName = false; series.DataPoints.DefaultDataPoint.DataLabels.IsValue = true; Color[] series_color = new Color[12]; series_color[0] = Color.FromArgb(253, 182, 33); series_color[1] = Color.FromArgb(18, 151, 243); series_color[2] = Color.FromArgb(38, 7, 142); series_color[3] = Color.FromArgb(5, 60, 122); series_color[4] = Color.FromArgb(180, 70, 243); series_color[5] = Color.FromArgb(53, 12, 133); series_color[6] = Color.FromArgb(108, 11, 23); series_color[7] = Color.FromArgb(200, 70, 112); series_color[8] = Color.FromArgb(125, 200, 12); series_color[9] = Color.FromArgb(10, 150, 43); series_color[10] = Color.FromArgb(150, 82, 133); series_color[11] = Color.FromArgb(98, 15, 103); for (int i = 0; i < (series as ChartSerieImpl).PointNumber; i++) { series.DataPoints[i].DataFormat.AreaProperties.ForegroundColor = series_color[i]; } //Set Legend chart.HasLegend = true; //Positioning the chart in the worksheet chart.TopRow = 8; chart.LeftColumn = 1; chart.BottomRow = 23; chart.RightColumn = 8; //Saving the workbook workbook.SaveAs("../../../Output/SunBurst.xlsx"); }
using (ExcelEngine excelEngine = new ExcelEngine())
{
    IApplication application = excelEngine.Excel;
    application.DefaultVersion = ExcelVersion.Xlsx;
    IWorkbook workbook = application.Workbooks.Open("../../Data/Input.xlsx");
    IWorksheet worksheet = workbook.Worksheets[0];

    //Initialize chart
    IChartShape chart = worksheet.Charts.Add();
    chart.ChartType = ExcelChartType.SunBurst;

    //Assign data
    chart.DataRange = worksheet["A1:B13"];
    chart.IsSeriesInRows = false;

    //Apply chart elements
    //Set Chart Title
    chart.ChartTitle = "Transfer Summary";

    //Set Data labels
    IChartSerie series = chart.Series[0];
    series.DataPoints.DefaultDataPoint.DataLabels.IsCategoryName = false;
    series.DataPoints.DefaultDataPoint.DataLabels.IsValue = true;

    Color[] series_color = new Color[12];
    series_color[0] = Color.FromArgb(253, 182, 33);
    series_color[1] = Color.FromArgb(18, 151, 243);
    series_color[2] = Color.FromArgb(38, 7, 142);
    series_color[3] = Color.FromArgb(5, 60, 122);
    series_color[4] = Color.FromArgb(180, 70, 243);
    series_color[5] = Color.FromArgb(53, 12, 133);
    series_color[6] = Color.FromArgb(108, 11, 23);
    series_color[7] = Color.FromArgb(200, 70, 112);
    series_color[8] = Color.FromArgb(125, 200, 12);
    series_color[9] = Color.FromArgb(10, 150, 43);
    series_color[10] = Color.FromArgb(150, 82, 133);
    series_color[11] = Color.FromArgb(98, 15, 103);

    for (int i = 0; i < (series as ChartSerieImpl).PointNumber; i++)
    {
        series.DataPoints[i].DataFormat.AreaProperties.ForegroundColor = series_color[i];
    }

    //Set Legend
    chart.HasLegend = true;

    //Positioning the chart in the worksheet
    chart.TopRow = 8;
    chart.LeftColumn = 1;
    chart.BottomRow = 23;
    chart.RightColumn = 8;

    //Saving the workbook
    workbook.SaveAs("../../Output/SunBurst.xlsx");
}
Using excelEngine As New ExcelEngine()
     Dim application As IApplication = excelEngine.Excel
     application.DefaultVersion = ExcelVersion.Xlsx

     Dim workbook As IWorkbook = application.Workbooks.Open("../../Data/Input.xlsx")
     Dim worksheet As IWorksheet = workbook.Worksheets(0)

     'Initialize chart
     Dim chart As IChartShape = worksheet.Charts.Add()
     chart.ChartType = ExcelChartType.SunBurst

     'Assign data
     chart.DataRange = worksheet("A1:B13")
     chart.IsSeriesInRows = False

     'Apply chart elements
     'Set Chart Title
     chart.ChartTitle = "Transfer Summary"

     'Set Data labels
     Dim series As IChartSerie = chart.Series(0)
     series.DataPoints.DefaultDataPoint.DataLabels.IsCategoryName = False
     series.DataPoints.DefaultDataPoint.DataLabels.IsValue = True

     Dim series_color(11) As Color
     series_color(0) = Color.FromArgb(253, 182, 33)
     series_color(1) = Color.FromArgb(18, 151, 243)
     series_color(2) = Color.FromArgb(38, 7, 142)
     series_color(3) = Color.FromArgb(5, 60, 122)
     series_color(4) = Color.FromArgb(180, 70, 243)
     series_color(5) = Color.FromArgb(53, 12, 133)
     series_color(6) = Color.FromArgb(108, 11, 23)
     series_color(7) = Color.FromArgb(200, 70, 112)
     series_color(8) = Color.FromArgb(125, 200, 12)
     series_color(9) = Color.FromArgb(10, 150, 43)
     series_color(10) = Color.FromArgb(150, 82, 133)
     series_color(11) = Color.FromArgb(98, 15, 103)

     For i As Integer = 0 To CType(series, ChartSerieImpl).PointNumber - 1
         series.DataPoints(i).DataFormat.AreaProperties.ForegroundColor = series_color(i)
     Next

     'Set Legend
     chart.HasLegend = True

     'Positioning the chart in the worksheet
     chart.TopRow = 8
     chart.LeftColumn = 1
     chart.BottomRow = 23
     chart.RightColumn = 8

     'Saving the workbook
     workbook.SaveAs("../../Output/SunBurst.xlsx")
 End Using