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