Skip to content

Commit 86a56ac

Browse files
991692-Sunburst
1 parent 6db6163 commit 86a56ac

1 file changed

Lines changed: 104 additions & 107 deletions

File tree

Document-Processing/Excel/Excel-Library/NET/faqs/how-to-set-the-color-for-the-dynamic-series-in-sunburst-chart.md

Lines changed: 104 additions & 107 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ documentation: UG
1111
The examples below show how to assign custom colors to each data point in a Sunburst chart with Syncfusion XlsIO. Code is provided for C# (cross-platform and Windows-specific) and VB.NET.
1212

1313
{% tabs %}
14-
{% highlight c# tabtitle="C# [Cross-platform]"
14+
{% highlight c# tabtitle="C# [Cross-platform]" %}
1515
{% endhighlight %}
1616
using (ExcelEngine excelEngine = new ExcelEngine())
1717
{
@@ -32,28 +32,28 @@ using (ExcelEngine excelEngine = new ExcelEngine())
3232
//Set Chart Title
3333
chart.ChartTitle = "Transfer Summary";
3434

35-
//Set Datalabels
36-
IChartSerie serie1 = chart.Series[0];
37-
serie1.DataPoints.DefaultDataPoint.DataLabels.IsCategoryName = false;
38-
serie1.DataPoints.DefaultDataPoint.DataLabels.IsValue = true;
39-
40-
Color[] seriecolor = new Color[12];
41-
seriecolor[0] = Color.FromArgb(253, 182, 33);
42-
seriecolor[1] = Color.FromArgb(18, 151, 243);
43-
seriecolor[2] = Color.FromArgb(38, 7, 142);
44-
seriecolor[3] = Color.FromArgb(5, 60, 122);
45-
seriecolor[4] = Color.FromArgb(180, 70, 243);
46-
seriecolor[5] = Color.FromArgb(53, 12, 133);
47-
seriecolor[6] = Color.FromArgb(108, 11, 23);
48-
seriecolor[7] = Color.FromArgb(200, 70, 112);
49-
seriecolor[8] = Color.FromArgb(125, 200, 12);
50-
seriecolor[9] = Color.FromArgb(10, 150, 43);
51-
seriecolor[10] = Color.FromArgb(150, 82, 133);
52-
seriecolor[11] = Color.FromArgb(98, 15, 103);
53-
54-
for (int i = 0; i < (serie1 as ChartSerieImpl).PointNumber; i++)
35+
//Set Data labels
36+
IChartSerie series = chart.Series[0];
37+
series.DataPoints.DefaultDataPoint.DataLabels.IsCategoryName = false;
38+
series.DataPoints.DefaultDataPoint.DataLabels.IsValue = true;
39+
40+
Color[] seriescolor = new Color[12];
41+
seriescolor[0] = Color.FromArgb(253, 182, 33);
42+
seriescolor[1] = Color.FromArgb(18, 151, 243);
43+
seriescolor[2] = Color.FromArgb(38, 7, 142);
44+
seriescolor[3] = Color.FromArgb(5, 60, 122);
45+
seriescolor[4] = Color.FromArgb(180, 70, 243);
46+
seriescolor[5] = Color.FromArgb(53, 12, 133);
47+
seriescolor[6] = Color.FromArgb(108, 11, 23);
48+
seriescolor[7] = Color.FromArgb(200, 70, 112);
49+
seriescolor[8] = Color.FromArgb(125, 200, 12);
50+
seriescolor[9] = Color.FromArgb(10, 150, 43);
51+
seriescolor[10] = Color.FromArgb(150, 82, 133);
52+
seriescolor[11] = Color.FromArgb(98, 15, 103);
53+
54+
for (int i = 0; i < (series as ChartSerieImpl).PointNumber; i++)
5555
{
56-
serie1.DataPoints[i].DataFormat.AreaProperties.ForegroundColor = seriecolor[i];
56+
series.DataPoints[i].DataFormat.AreaProperties.ForegroundColor = seriescolor[i];
5757
}
5858

5959
//Set Legend
@@ -69,120 +69,117 @@ using (ExcelEngine excelEngine = new ExcelEngine())
6969
workbook.SaveAs("../../../Output/SunBurst.xlsx");
7070
}
7171
{% highlight c# tabtitle="C# [Windows-specific]" %}
72-
using (ExcelEngine excelEngine = new ExcelEngine())
73-
{
74-
IApplication application = excelEngine.Excel;
75-
application.DefaultVersion = ExcelVersion.Xlsx;
76-
IWorkbook workbook = application.Workbooks.Open("../../Data/Input.xlsx");
77-
IWorksheet worksheet = workbook.Worksheets[0];
78-
79-
//Initialize chart
80-
IChartShape chart = worksheet.Charts.Add();
81-
chart.ChartType = ExcelChartType.SunBurst;
82-
83-
//Assign data
84-
chart.DataRange = worksheet["A1:B13"];
85-
chart.IsSeriesInRows = false;
86-
87-
//Apply chart elements
88-
//Set Chart Title
89-
chart.ChartTitle = "Transfer Summary";
90-
91-
//Set Datalabels
92-
IChartSerie serie1 = chart.Series[0];
93-
serie1.DataPoints.DefaultDataPoint.DataLabels.IsCategoryName = false;
94-
serie1.DataPoints.DefaultDataPoint.DataLabels.IsValue = true;
95-
96-
Color[] seriecolor = new Color[12];
97-
seriecolor[0] = Color.FromArgb(253, 182, 33);
98-
seriecolor[1] = Color.FromArgb(18, 151, 243);
99-
seriecolor[2] = Color.FromArgb(38, 7, 142);
100-
seriecolor[3] = Color.FromArgb(5, 60, 122);
101-
seriecolor[4] = Color.FromArgb(180, 70, 243);
102-
seriecolor[5] = Color.FromArgb(53, 12, 133);
103-
seriecolor[6] = Color.FromArgb(108, 11, 23);
104-
seriecolor[7] = Color.FromArgb(200, 70, 112);
105-
seriecolor[8] = Color.FromArgb(125, 200, 12);
106-
seriecolor[9] = Color.FromArgb(10, 150, 43);
107-
seriecolor[10] = Color.FromArgb(150, 82, 133);
108-
seriecolor[11] = Color.FromArgb(98, 15, 103);
109-
110-
for (int i = 0; i < (serie1 as ChartSerieImpl).PointNumber; i++)
111-
{
112-
serie1.DataPoints[i].DataFormat.AreaProperties.ForegroundColor = seriecolor[i];
113-
}
114-
115-
//Set Legend
116-
chart.HasLegend = true;
117-
118-
//Positioning the chart in the worksheet
119-
chart.TopRow = 8;
120-
chart.LeftColumn = 1;
121-
chart.BottomRow = 23;
122-
chart.RightColumn = 8;
123-
124-
//Saving and closing the workbook
125-
workbook.SaveAs("../../Output/SunBurst.xlsx");
126-
}
72+
using (ExcelEngine excelEngine = new ExcelEngine())
73+
{
74+
IApplication application = excelEngine.Excel;
75+
application.DefaultVersion = ExcelVersion.Xlsx;
76+
IWorkbook workbook = application.Workbooks.Open("../../Data/Input.xlsx");
77+
IWorksheet worksheet = workbook.Worksheets[0];
78+
79+
//Initialize chart
80+
IChartShape chart = worksheet.Charts.Add();
81+
chart.ChartType = ExcelChartType.SunBurst;
82+
83+
//Assign data
84+
chart.DataRange = worksheet["A1:B13"];
85+
chart.IsSeriesInRows = false;
86+
87+
//Apply chart elements
88+
//Set Chart Title
89+
chart.ChartTitle = "Transfer Summary";
90+
91+
//Set Data labels
92+
IChartSerie series = chart.Series[0];
93+
series.DataPoints.DefaultDataPoint.DataLabels.IsCategoryName = false;
94+
series.DataPoints.DefaultDataPoint.DataLabels.IsValue = true;
95+
96+
Color[] seriescolor = new Color[12];
97+
seriescolor[0] = Color.FromArgb(253, 182, 33);
98+
seriescolor[1] = Color.FromArgb(18, 151, 243);
99+
seriescolor[2] = Color.FromArgb(38, 7, 142);
100+
seriescolor[3] = Color.FromArgb(5, 60, 122);
101+
seriescolor[4] = Color.FromArgb(180, 70, 243);
102+
seriescolor[5] = Color.FromArgb(53, 12, 133);
103+
seriescolor[6] = Color.FromArgb(108, 11, 23);
104+
seriescolor[7] = Color.FromArgb(200, 70, 112);
105+
seriescolor[8] = Color.FromArgb(125, 200, 12);
106+
seriescolor[9] = Color.FromArgb(10, 150, 43);
107+
seriescolor[10] = Color.FromArgb(150, 82, 133);
108+
seriescolor[11] = Color.FromArgb(98, 15, 103);
109+
110+
for (int i = 0; i < (series as ChartSerieImpl).PointNumber; i++)
111+
{
112+
series.DataPoints[i].DataFormat.AreaProperties.ForegroundColor = seriescolor[i];
113+
}
114+
115+
//Set Legend
116+
chart.HasLegend = true;
117+
118+
//Positioning the chart in the worksheet
119+
chart.TopRow = 8;
120+
chart.LeftColumn = 1;
121+
chart.BottomRow = 23;
122+
chart.RightColumn = 8;
123+
124+
//Saving the workbook
125+
workbook.SaveAs("../../Output/SunBurst.xlsx");
126+
}
127127
{% endhighlight %}
128128

129129
{% highlight vb.net tabtitle="VB.NET [Windows-specific]" %}
130130
Using excelEngine As New ExcelEngine()
131-
132131
Dim application As IApplication = excelEngine.Excel
133132
application.DefaultVersion = ExcelVersion.Xlsx
134133

135-
'Open existing workbook with data
136134
Dim workbook As IWorkbook = application.Workbooks.Open("../../Data/Input.xlsx")
137135
Dim worksheet As IWorksheet = workbook.Worksheets(0)
138136

139-
'Create and configure Sunburst chart
137+
'Initialize chart
140138
Dim chart As IChartShape = worksheet.Charts.Add()
141139
chart.ChartType = ExcelChartType.SunBurst
142140

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

147-
'Chart Title
145+
'Apply chart elements
146+
'Set Chart Title
148147
chart.ChartTitle = "Transfer Summary"
149148

150-
'Data labels (show value only)
151-
Dim serie1 As IChartSerie = chart.Series(0)
152-
serie1.DataPoints.DefaultDataPoint.DataLabels.IsCategoryName = False
153-
serie1.DataPoints.DefaultDataPoint.DataLabels.IsValue = True
154-
155-
'Custom colors for each data point
156-
Dim serieColor(11) As Color
157-
serieColor(0) = Color.FromArgb(253, 182, 33)
158-
serieColor(1) = Color.FromArgb(18, 151, 243)
159-
serieColor(2) = Color.FromArgb(38, 7, 142)
160-
serieColor(3) = Color.FromArgb(5, 60, 122)
161-
serieColor(4) = Color.FromArgb(180, 70, 243)
162-
serieColor(5) = Color.FromArgb(53, 12, 133)
163-
serieColor(6) = Color.FromArgb(108, 11, 23)
164-
serieColor(7) = Color.FromArgb(200, 70, 112)
165-
serieColor(8) = Color.FromArgb(125, 200, 12)
166-
serieColor(9) = Color.FromArgb(10, 150, 43)
167-
serieColor(10) = Color.FromArgb(150, 82, 133)
168-
serieColor(11) = Color.FromArgb(98, 15, 103)
169-
170-
For i As Integer = 0 To CType(serie1, ChartSerieImpl).PointNumber - 1
171-
serie1.DataPoints(i).DataFormat.AreaProperties.ForegroundColor = serieColor(i)
149+
'Set Data labels
150+
Dim series As IChartSerie = chart.Series(0)
151+
series.DataPoints.DefaultDataPoint.DataLabels.IsCategoryName = False
152+
series.DataPoints.DefaultDataPoint.DataLabels.IsValue = True
153+
154+
Dim seriescolor(11) As Color
155+
seriescolor(0) = Color.FromArgb(253, 182, 33)
156+
seriescolor(1) = Color.FromArgb(18, 151, 243)
157+
seriescolor(2) = Color.FromArgb(38, 7, 142)
158+
seriescolor(3) = Color.FromArgb(5, 60, 122)
159+
seriescolor(4) = Color.FromArgb(180, 70, 243)
160+
seriescolor(5) = Color.FromArgb(53, 12, 133)
161+
seriescolor(6) = Color.FromArgb(108, 11, 23)
162+
seriescolor(7) = Color.FromArgb(200, 70, 112)
163+
seriescolor(8) = Color.FromArgb(125, 200, 12)
164+
seriescolor(9) = Color.FromArgb(10, 150, 43)
165+
seriescolor(10) = Color.FromArgb(150, 82, 133)
166+
seriescolor(11) = Color.FromArgb(98, 15, 103)
167+
168+
For i As Integer = 0 To CType(series, ChartSerieImpl).PointNumber - 1
169+
series.DataPoints(i).DataFormat.AreaProperties.ForegroundColor = seriescolor(i)
172170
Next
173171

174-
'Legend
172+
'Set Legend
175173
chart.HasLegend = True
176174

177-
'Position the chart in the worksheet
175+
'Positioning the chart in the worksheet
178176
chart.TopRow = 8
179177
chart.LeftColumn = 1
180178
chart.BottomRow = 23
181179
chart.RightColumn = 8
182180

183-
'Save and close
181+
'Saving and closing the workbook
184182
workbook.SaveAs("../../Output/SunBurst.xlsx")
185-
186183
End Using
187184
{% endhighlight %}
188185
{% endtabs %}

0 commit comments

Comments
 (0)