Skip to content

Commit eb259dc

Browse files
authored
Merge pull request #2085 from syncfusion-content/871974-Gradient-XlsIO
871974- Add the UG for gradient fill in chart
2 parents c514461 + 7cc72b7 commit eb259dc

File tree

1 file changed

+210
-0
lines changed

1 file changed

+210
-0
lines changed

File-Formats/XlsIO/Working-with-Charts.md

Lines changed: 210 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2178,6 +2178,216 @@ End Using
21782178

21792179
A complete working example to fill chart area with picture in C# is present on [this GitHub page](https://github.com/SyncfusionExamples/XlsIO-Examples/tree/master/Create%20and%20Edit%20Charts/Picture%20in%20Chart%20Area).
21802180

2181+
## Gradient Fill
2182+
2183+
A gradient fill in a chart refers to the application of a smooth transition of colors across a chart element. Instead of a solid color, a gradient fill gradually blends one color into another, creating a visually appealing effect.
2184+
2185+
The following code example explains how to apply gradient fill in the chart data series.
2186+
2187+
{% tabs %}
2188+
{% highlight c# tabtitle="C# [Cross-platform]" %}
2189+
using (ExcelEngine excelEngine = new ExcelEngine())
2190+
{
2191+
IApplication application = excelEngine.Excel;
2192+
application.DefaultVersion = ExcelVersion.Xlsx;
2193+
FileStream inputStream = new FileStream("../../../Data/InputTemplate.xlsx", FileMode.Open, FileAccess.Read);
2194+
IWorkbook workbook = application.Workbooks.Open(inputStream, ExcelOpenType.Automatic);
2195+
IWorksheet sheet = workbook.Worksheets[0];
2196+
2197+
//Create a Chart
2198+
IChartShape chart = sheet.Charts.Add();
2199+
2200+
//Set Chart Type
2201+
chart.ChartType = ExcelChartType.Column_Clustered;
2202+
2203+
//Set data range in the worksheet
2204+
chart.DataRange = sheet.Range["A1:C6"];
2205+
chart.IsSeriesInRows = false;
2206+
2207+
//Get Serie
2208+
IChartSerie serie1 = chart.Series[0];
2209+
IChartSerie serie2 = chart.Series[1];
2210+
2211+
//Set Datalabels
2212+
serie1.DataPoints.DefaultDataPoint.DataLabels.IsValue = true;
2213+
serie2.DataPoints.DefaultDataPoint.DataLabels.IsValue = true;
2214+
serie1.DataPoints.DefaultDataPoint.DataLabels.Position = ExcelDataLabelPosition.Outside;
2215+
serie2.DataPoints.DefaultDataPoint.DataLabels.Position = ExcelDataLabelPosition.Outside;
2216+
2217+
//Gradient fill for serie1
2218+
ChartFillImpl chartFillImpl1 = serie1.SerieFormat.Fill as ChartFillImpl;
2219+
chartFillImpl1.FillType = ExcelFillType.Gradient;
2220+
chartFillImpl1.GradientColorType = ExcelGradientColor.MultiColor;
2221+
serie1.SerieFormat.Fill.GradientStyle = ExcelGradientStyle.Horizontal;
2222+
GradientStopImpl gradientStopImpl1 = new GradientStopImpl(new ColorObject(Color.FromArgb(0, 176, 240)), 50000, 100000);
2223+
GradientStopImpl gradientStopImpl2 = new GradientStopImpl(new ColorObject(Color.FromArgb(0, 112, 192)), 70000, 100000);
2224+
chartFillImpl1.GradientStops.GradientType = GradientType.Liniar;
2225+
chartFillImpl1.GradientStops.Add(gradientStopImpl1);
2226+
chartFillImpl1.GradientStops.Add(gradientStopImpl2);
2227+
2228+
//Gradient fill for serie2
2229+
ChartFillImpl chartFillImpl2 = serie2.SerieFormat.Fill as ChartFillImpl;
2230+
chartFillImpl2.FillType = ExcelFillType.Gradient;
2231+
chartFillImpl2.GradientColorType = ExcelGradientColor.MultiColor;
2232+
serie2.SerieFormat.Fill.GradientStyle = ExcelGradientStyle.Horizontal;
2233+
GradientStopImpl gradientStopImpl3 = new GradientStopImpl(new ColorObject(Color.FromArgb(244, 177, 131)), 40000, 100000);
2234+
GradientStopImpl gradientStopImpl4 = new GradientStopImpl(new ColorObject(Color.FromArgb(255, 102, 0)), 70000, 100000);
2235+
chartFillImpl2.GradientStops.GradientType = GradientType.Liniar;
2236+
chartFillImpl2.GradientStops.Add(gradientStopImpl3);
2237+
chartFillImpl2.GradientStops.Add(gradientStopImpl4);
2238+
2239+
//Set Legend
2240+
chart.HasLegend = true;
2241+
chart.Legend.Position = ExcelLegendPosition.Bottom;
2242+
2243+
//Positioning the chart in the worksheet
2244+
chart.TopRow = 8;
2245+
chart.LeftColumn = 1;
2246+
chart.BottomRow = 23;
2247+
chart.RightColumn = 8;
2248+
2249+
//Saving the workbook
2250+
FileStream outputStream = new FileStream("Output.xlsx", FileMode.Create, FileAccess.Write);
2251+
workbook.SaveAs(outputStream);
2252+
2253+
//Dispose streams
2254+
outputStream.Dispose();
2255+
inputStream.Dispose();
2256+
}
2257+
{% endhighlight %}
2258+
2259+
{% highlight c# tabtitle="C# [Windows-specific]" %}
2260+
using (ExcelEngine engine = new ExcelEngine())
2261+
{
2262+
IApplication application = engine.Excel;
2263+
application.DefaultVersion = ExcelVersion.Xlsx;
2264+
IWorkbook workbook = application.Workbooks.Open("../../Data/InputTemplate.xlsx");
2265+
IWorksheet sheet = workbook.Worksheets[0];
2266+
2267+
//Create a Chart
2268+
IChartShape chart = sheet.Charts.Add();
2269+
2270+
//Set Chart Type
2271+
chart.ChartType = ExcelChartType.Column_Clustered;
2272+
2273+
//Set data range in the worksheet
2274+
chart.DataRange = sheet.Range["A1:C6"];
2275+
chart.IsSeriesInRows = false;
2276+
2277+
//Get Serie
2278+
IChartSerie serie1 = chart.Series[0];
2279+
IChartSerie serie2 = chart.Series[1];
2280+
2281+
//Set Datalabels
2282+
serie1.DataPoints.DefaultDataPoint.DataLabels.IsValue = true;
2283+
serie2.DataPoints.DefaultDataPoint.DataLabels.IsValue = true;
2284+
serie1.DataPoints.DefaultDataPoint.DataLabels.Position = ExcelDataLabelPosition.Outside;
2285+
serie2.DataPoints.DefaultDataPoint.DataLabels.Position = ExcelDataLabelPosition.Outside;
2286+
2287+
//Gradient fill for serie1
2288+
ChartFillImpl chartFillImpl1 = serie1.SerieFormat.Fill as ChartFillImpl;
2289+
chartFillImpl1.FillType = ExcelFillType.Gradient;
2290+
chartFillImpl1.GradientColorType = ExcelGradientColor.MultiColor;
2291+
serie1.SerieFormat.Fill.GradientStyle = ExcelGradientStyle.Horizontal;
2292+
GradientStopImpl gradientStopImpl1 = new GradientStopImpl(new ColorObject(Color.FromArgb(0, 176, 240)), 50000, 100000);
2293+
GradientStopImpl gradientStopImpl2 = new GradientStopImpl(new ColorObject(Color.FromArgb(0, 112, 192)), 70000, 100000);
2294+
chartFillImpl1.GradientStops.GradientType = GradientType.Liniar;
2295+
chartFillImpl1.GradientStops.Add(gradientStopImpl1);
2296+
chartFillImpl1.GradientStops.Add(gradientStopImpl2);
2297+
2298+
//Gradient fill for serie2
2299+
ChartFillImpl chartFillImpl2 = serie2.SerieFormat.Fill as ChartFillImpl;
2300+
chartFillImpl2.FillType = ExcelFillType.Gradient;
2301+
chartFillImpl2.GradientColorType = ExcelGradientColor.MultiColor;
2302+
serie2.SerieFormat.Fill.GradientStyle = ExcelGradientStyle.Horizontal;
2303+
GradientStopImpl gradientStopImpl3 = new GradientStopImpl(new ColorObject(Color.FromArgb(244, 177, 131)), 40000, 100000);
2304+
GradientStopImpl gradientStopImpl4 = new GradientStopImpl(new ColorObject(Color.FromArgb(255, 102, 0)), 70000, 100000);
2305+
chartFillImpl2.GradientStops.GradientType = GradientType.Liniar;
2306+
chartFillImpl2.GradientStops.Add(gradientStopImpl3);
2307+
chartFillImpl2.GradientStops.Add(gradientStopImpl4);
2308+
2309+
//Set Legend
2310+
chart.HasLegend = true;
2311+
chart.Legend.Position = ExcelLegendPosition.Bottom;
2312+
2313+
//Positioning the chart in the worksheet
2314+
chart.TopRow = 8;
2315+
chart.LeftColumn = 1;
2316+
chart.BottomRow = 23;
2317+
chart.RightColumn = 8;
2318+
2319+
//Saving the workbook in xlsx format
2320+
workbook.SaveAs("Output.xlsx");
2321+
}
2322+
{% endhighlight %}
2323+
2324+
{% highlight vb.net tabtitle="VB.NET [Windows-specific]" %}
2325+
Using engine As New ExcelEngine()
2326+
Dim application As IApplication = engine.Excel
2327+
application.DefaultVersion = ExcelVersion.Xlsx
2328+
Dim workbook As IWorkbook = application.Workbooks.Open("../../Data/InputTemplate.xlsx")
2329+
Dim sheet As IWorksheet = workbook.Worksheets(0)
2330+
2331+
'Create a Chart
2332+
Dim chart As IChartShape = sheet.Charts.Add()
2333+
2334+
'Set Chart Type
2335+
chart.ChartType = ExcelChartType.Column_Clustered
2336+
2337+
'Set data range in the worksheet
2338+
chart.DataRange = sheet.Range("A1:C6")
2339+
chart.IsSeriesInRows = False
2340+
2341+
'Get Serie
2342+
Dim serie1 As IChartSerie = chart.Series(0)
2343+
Dim serie2 As IChartSerie = chart.Series(1)
2344+
2345+
'Set Datalabels
2346+
serie1.DataPoints.DefaultDataPoint.DataLabels.IsValue = True
2347+
serie2.DataPoints.DefaultDataPoint.DataLabels.IsValue = True
2348+
serie1.DataPoints.DefaultDataPoint.DataLabels.Position = ExcelDataLabelPosition.Outside
2349+
serie2.DataPoints.DefaultDataPoint.DataLabels.Position = ExcelDataLabelPosition.Outside
2350+
2351+
'Gradient fill for serie1
2352+
Dim chartFillImpl1 As ChartFillImpl = TryCast(serie1.SerieFormat.Fill, ChartFillImpl)
2353+
chartFillImpl1.FillType = ExcelFillType.Gradient
2354+
chartFillImpl1.GradientColorType = ExcelGradientColor.MultiColor
2355+
serie1.SerieFormat.Fill.GradientStyle = ExcelGradientStyle.Horizontal
2356+
Dim gradientStopImpl1 As New GradientStopImpl(New ColorObject(Color.FromArgb(0, 176, 240)), 50000, 100000)
2357+
Dim gradientStopImpl2 As New GradientStopImpl(New ColorObject(Color.FromArgb(0, 112, 192)), 70000, 100000)
2358+
chartFillImpl1.GradientStops.GradientType = GradientType.Liniar
2359+
chartFillImpl1.GradientStops.Add(gradientStopImpl1)
2360+
chartFillImpl1.GradientStops.Add(gradientStopImpl2)
2361+
2362+
'Gradient fill for serie2
2363+
Dim chartFillImpl2 As ChartFillImpl = TryCast(serie2.SerieFormat.Fill, ChartFillImpl)
2364+
chartFillImpl2.FillType = ExcelFillType.Gradient
2365+
chartFillImpl2.GradientColorType = ExcelGradientColor.MultiColor
2366+
serie2.SerieFormat.Fill.GradientStyle = ExcelGradientStyle.Horizontal
2367+
Dim gradientStopImpl3 As New GradientStopImpl(New ColorObject(Color.FromArgb(244, 177, 131)), 40000, 100000)
2368+
Dim gradientStopImpl4 As New GradientStopImpl(New ColorObject(Color.FromArgb(255, 102, 0)), 70000, 100000)
2369+
chartFillImpl2.GradientStops.GradientType = GradientType.Liniar
2370+
chartFillImpl2.GradientStops.Add(gradientStopImpl3)
2371+
chartFillImpl2.GradientStops.Add(gradientStopImpl4)
2372+
2373+
'Set Legend
2374+
chart.HasLegend = True
2375+
chart.Legend.Position = ExcelLegendPosition.Bottom
2376+
2377+
'Positioning the chart in the worksheet
2378+
chart.TopRow = 8
2379+
chart.LeftColumn = 1
2380+
chart.BottomRow = 23
2381+
chart.RightColumn = 8
2382+
2383+
'Saving the workbook in xlsx format
2384+
workbook.SaveAs("Output.xlsx")
2385+
End Using
2386+
{% endhighlight %}
2387+
{% endtabs %}
2388+
2389+
A complete working example for applying gradient fill in chart series in C# is present on [this GitHub page](https://github.com/SyncfusionExamples/XlsIO-Examples/tree/master/Create%20and%20Edit%20Charts/Gradient%20Fill/NET%20Standard/Gradient%20Fill).
2390+
21812391
## Applying 3D Formats
21822392

21832393
The following code example explains how to apply 3D settings such as rotation, side wall, back wall, and floor settings.

0 commit comments

Comments
 (0)