Skip to content

Commit b4c9171

Browse files
committed
871974-Gradient-XlsIO
1 parent 491c168 commit b4c9171

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
@@ -2110,6 +2110,216 @@ End Using
21102110

21112111
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).
21122112

2113+
## Gradient Fill
2114+
2115+
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.
2116+
2117+
The following code example explains how to apply gradient fill in the chart data series.
2118+
2119+
{% tabs %}
2120+
{% highlight c# tabtitle="C# [Cross-platform]" %}
2121+
using (ExcelEngine excelEngine = new ExcelEngine())
2122+
{
2123+
IApplication application = excelEngine.Excel;
2124+
application.DefaultVersion = ExcelVersion.Xlsx;
2125+
FileStream inputStream = new FileStream("../../../Data/InputTemplate.xlsx", FileMode.Open, FileAccess.Read);
2126+
IWorkbook workbook = application.Workbooks.Open(inputStream, ExcelOpenType.Automatic);
2127+
IWorksheet sheet = workbook.Worksheets[0];
2128+
2129+
//Create a Chart
2130+
IChartShape chart = sheet.Charts.Add();
2131+
2132+
//Set Chart Type
2133+
chart.ChartType = ExcelChartType.Column_Clustered;
2134+
2135+
//Set data range in the worksheet
2136+
chart.DataRange = sheet.Range["A1:C6"];
2137+
chart.IsSeriesInRows = false;
2138+
2139+
//Get Serie
2140+
IChartSerie serie1 = chart.Series[0];
2141+
IChartSerie serie2 = chart.Series[1];
2142+
2143+
//Set Datalabels
2144+
serie1.DataPoints.DefaultDataPoint.DataLabels.IsValue = true;
2145+
serie2.DataPoints.DefaultDataPoint.DataLabels.IsValue = true;
2146+
serie1.DataPoints.DefaultDataPoint.DataLabels.Position = ExcelDataLabelPosition.Outside;
2147+
serie2.DataPoints.DefaultDataPoint.DataLabels.Position = ExcelDataLabelPosition.Outside;
2148+
2149+
//Gradient fill for serie1
2150+
ChartFillImpl chartFillImpl1 = serie1.SerieFormat.Fill as ChartFillImpl;
2151+
chartFillImpl1.FillType = ExcelFillType.Gradient;
2152+
chartFillImpl1.GradientColorType = ExcelGradientColor.MultiColor;
2153+
serie1.SerieFormat.Fill.GradientStyle = ExcelGradientStyle.Horizontal;
2154+
GradientStopImpl gradientStopImpl1 = new GradientStopImpl(new ColorObject(Color.FromArgb(0, 176, 240)), 50000, 100000);
2155+
GradientStopImpl gradientStopImpl2 = new GradientStopImpl(new ColorObject(Color.FromArgb(0, 112, 192)), 70000, 100000);
2156+
chartFillImpl1.GradientStops.GradientType = GradientType.Liniar;
2157+
chartFillImpl1.GradientStops.Add(gradientStopImpl1);
2158+
chartFillImpl1.GradientStops.Add(gradientStopImpl2);
2159+
2160+
//Gradient fill for serie2
2161+
ChartFillImpl chartFillImpl2 = serie2.SerieFormat.Fill as ChartFillImpl;
2162+
chartFillImpl2.FillType = ExcelFillType.Gradient;
2163+
chartFillImpl2.GradientColorType = ExcelGradientColor.MultiColor;
2164+
serie2.SerieFormat.Fill.GradientStyle = ExcelGradientStyle.Horizontal;
2165+
GradientStopImpl gradientStopImpl3 = new GradientStopImpl(new ColorObject(Color.FromArgb(244, 177, 131)), 40000, 100000);
2166+
GradientStopImpl gradientStopImpl4 = new GradientStopImpl(new ColorObject(Color.FromArgb(255, 102, 0)), 70000, 100000);
2167+
chartFillImpl2.GradientStops.GradientType = GradientType.Liniar;
2168+
chartFillImpl2.GradientStops.Add(gradientStopImpl3);
2169+
chartFillImpl2.GradientStops.Add(gradientStopImpl4);
2170+
2171+
//Set Legend
2172+
chart.HasLegend = true;
2173+
chart.Legend.Position = ExcelLegendPosition.Bottom;
2174+
2175+
//Positioning the chart in the worksheet
2176+
chart.TopRow = 8;
2177+
chart.LeftColumn = 1;
2178+
chart.BottomRow = 23;
2179+
chart.RightColumn = 8;
2180+
2181+
//Saving the workbook
2182+
FileStream outputStream = new FileStream("Output.xlsx", FileMode.Create, FileAccess.Write);
2183+
workbook.SaveAs(outputStream);
2184+
2185+
//Dispose streams
2186+
outputStream.Dispose();
2187+
inputStream.Dispose();
2188+
}
2189+
{% endhighlight %}
2190+
2191+
{% highlight c# tabtitle="C# [Windows-specific]" %}
2192+
using (ExcelEngine engine = new ExcelEngine())
2193+
{
2194+
IApplication application = engine.Excel;
2195+
application.DefaultVersion = ExcelVersion.Xlsx;
2196+
IWorkbook workbook = application.Workbooks.Open("../../Data/InputTemplate.xlsx");
2197+
IWorksheet sheet = workbook.Worksheets[0];
2198+
2199+
//Create a Chart
2200+
IChartShape chart = sheet.Charts.Add();
2201+
2202+
//Set Chart Type
2203+
chart.ChartType = ExcelChartType.Column_Clustered;
2204+
2205+
//Set data range in the worksheet
2206+
chart.DataRange = sheet.Range["A1:C6"];
2207+
chart.IsSeriesInRows = false;
2208+
2209+
//Get Serie
2210+
IChartSerie serie1 = chart.Series[0];
2211+
IChartSerie serie2 = chart.Series[1];
2212+
2213+
//Set Datalabels
2214+
serie1.DataPoints.DefaultDataPoint.DataLabels.IsValue = true;
2215+
serie2.DataPoints.DefaultDataPoint.DataLabels.IsValue = true;
2216+
serie1.DataPoints.DefaultDataPoint.DataLabels.Position = ExcelDataLabelPosition.Outside;
2217+
serie2.DataPoints.DefaultDataPoint.DataLabels.Position = ExcelDataLabelPosition.Outside;
2218+
2219+
//Gradient fill for serie1
2220+
ChartFillImpl chartFillImpl1 = serie1.SerieFormat.Fill as ChartFillImpl;
2221+
chartFillImpl1.FillType = ExcelFillType.Gradient;
2222+
chartFillImpl1.GradientColorType = ExcelGradientColor.MultiColor;
2223+
serie1.SerieFormat.Fill.GradientStyle = ExcelGradientStyle.Horizontal;
2224+
GradientStopImpl gradientStopImpl1 = new GradientStopImpl(new ColorObject(Color.FromArgb(0, 176, 240)), 50000, 100000);
2225+
GradientStopImpl gradientStopImpl2 = new GradientStopImpl(new ColorObject(Color.FromArgb(0, 112, 192)), 70000, 100000);
2226+
chartFillImpl1.GradientStops.GradientType = GradientType.Liniar;
2227+
chartFillImpl1.GradientStops.Add(gradientStopImpl1);
2228+
chartFillImpl1.GradientStops.Add(gradientStopImpl2);
2229+
2230+
//Gradient fill for serie2
2231+
ChartFillImpl chartFillImpl2 = serie2.SerieFormat.Fill as ChartFillImpl;
2232+
chartFillImpl2.FillType = ExcelFillType.Gradient;
2233+
chartFillImpl2.GradientColorType = ExcelGradientColor.MultiColor;
2234+
serie2.SerieFormat.Fill.GradientStyle = ExcelGradientStyle.Horizontal;
2235+
GradientStopImpl gradientStopImpl3 = new GradientStopImpl(new ColorObject(Color.FromArgb(244, 177, 131)), 40000, 100000);
2236+
GradientStopImpl gradientStopImpl4 = new GradientStopImpl(new ColorObject(Color.FromArgb(255, 102, 0)), 70000, 100000);
2237+
chartFillImpl2.GradientStops.GradientType = GradientType.Liniar;
2238+
chartFillImpl2.GradientStops.Add(gradientStopImpl3);
2239+
chartFillImpl2.GradientStops.Add(gradientStopImpl4);
2240+
2241+
//Set Legend
2242+
chart.HasLegend = true;
2243+
chart.Legend.Position = ExcelLegendPosition.Bottom;
2244+
2245+
//Positioning the chart in the worksheet
2246+
chart.TopRow = 8;
2247+
chart.LeftColumn = 1;
2248+
chart.BottomRow = 23;
2249+
chart.RightColumn = 8;
2250+
2251+
//Saving the workbook in xlsx format
2252+
workbook.SaveAs("Output.xlsx");
2253+
}
2254+
{% endhighlight %}
2255+
2256+
{% highlight vb.net tabtitle="VB.NET [Windows-specific]" %}
2257+
Using engine As New ExcelEngine()
2258+
Dim application As IApplication = engine.Excel
2259+
application.DefaultVersion = ExcelVersion.Xlsx
2260+
Dim workbook As IWorkbook = application.Workbooks.Open("../../Data/InputTemplate.xlsx")
2261+
Dim sheet As IWorksheet = workbook.Worksheets(0)
2262+
2263+
'Create a Chart
2264+
Dim chart As IChartShape = sheet.Charts.Add()
2265+
2266+
'Set Chart Type
2267+
chart.ChartType = ExcelChartType.Column_Clustered
2268+
2269+
'Set data range in the worksheet
2270+
chart.DataRange = sheet.Range("A1:C6")
2271+
chart.IsSeriesInRows = False
2272+
2273+
'Get Serie
2274+
Dim serie1 As IChartSerie = chart.Series(0)
2275+
Dim serie2 As IChartSerie = chart.Series(1)
2276+
2277+
'Set Datalabels
2278+
serie1.DataPoints.DefaultDataPoint.DataLabels.IsValue = True
2279+
serie2.DataPoints.DefaultDataPoint.DataLabels.IsValue = True
2280+
serie1.DataPoints.DefaultDataPoint.DataLabels.Position = ExcelDataLabelPosition.Outside
2281+
serie2.DataPoints.DefaultDataPoint.DataLabels.Position = ExcelDataLabelPosition.Outside
2282+
2283+
'Gradient fill for serie1
2284+
Dim chartFillImpl1 As ChartFillImpl = TryCast(serie1.SerieFormat.Fill, ChartFillImpl)
2285+
chartFillImpl1.FillType = ExcelFillType.Gradient
2286+
chartFillImpl1.GradientColorType = ExcelGradientColor.MultiColor
2287+
serie1.SerieFormat.Fill.GradientStyle = ExcelGradientStyle.Horizontal
2288+
Dim gradientStopImpl1 As New GradientStopImpl(New ColorObject(Color.FromArgb(0, 176, 240)), 50000, 100000)
2289+
Dim gradientStopImpl2 As New GradientStopImpl(New ColorObject(Color.FromArgb(0, 112, 192)), 70000, 100000)
2290+
chartFillImpl1.GradientStops.GradientType = GradientType.Liniar
2291+
chartFillImpl1.GradientStops.Add(gradientStopImpl1)
2292+
chartFillImpl1.GradientStops.Add(gradientStopImpl2)
2293+
2294+
'Gradient fill for serie2
2295+
Dim chartFillImpl2 As ChartFillImpl = TryCast(serie2.SerieFormat.Fill, ChartFillImpl)
2296+
chartFillImpl2.FillType = ExcelFillType.Gradient
2297+
chartFillImpl2.GradientColorType = ExcelGradientColor.MultiColor
2298+
serie2.SerieFormat.Fill.GradientStyle = ExcelGradientStyle.Horizontal
2299+
Dim gradientStopImpl3 As New GradientStopImpl(New ColorObject(Color.FromArgb(244, 177, 131)), 40000, 100000)
2300+
Dim gradientStopImpl4 As New GradientStopImpl(New ColorObject(Color.FromArgb(255, 102, 0)), 70000, 100000)
2301+
chartFillImpl2.GradientStops.GradientType = GradientType.Liniar
2302+
chartFillImpl2.GradientStops.Add(gradientStopImpl3)
2303+
chartFillImpl2.GradientStops.Add(gradientStopImpl4)
2304+
2305+
'Set Legend
2306+
chart.HasLegend = True
2307+
chart.Legend.Position = ExcelLegendPosition.Bottom
2308+
2309+
'Positioning the chart in the worksheet
2310+
chart.TopRow = 8
2311+
chart.LeftColumn = 1
2312+
chart.BottomRow = 23
2313+
chart.RightColumn = 8
2314+
2315+
'Saving the workbook in xlsx format
2316+
workbook.SaveAs("Output.xlsx")
2317+
End Using
2318+
{% endhighlight %}
2319+
{% endtabs %}
2320+
2321+
A complete working example for applying gradient fill in chart series in C# is present on [this GitHub page]().
2322+
21132323
## Applying 3D Formats
21142324

21152325
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)