/*************************************************************************************** DocX – DocX is the community edition of Xceed Words for .NET Copyright (C) 2009-2017 Xceed Software Inc. This program is provided to you under the terms of the Microsoft Public License (Ms-PL) as published at http://wpftoolkit.codeplex.com/license For more features and fast professional support, pick up Xceed Words for .NET at https://xceed.com/xceed-words-for-net/ *************************************************************************************/ using System; using System.Drawing; using System.IO; namespace Xceed.Words.NET.Examples { public class ChartSample { #region Private Members private const string ChartSampleOutputDirectory = Program.SampleDirectory + @"Chart\Output\"; #endregion #region Constructors static ChartSample() { if( !Directory.Exists( ChartSample.ChartSampleOutputDirectory ) ) { Directory.CreateDirectory( ChartSample.ChartSampleOutputDirectory ); } } #endregion #region Public Methods /// /// Add a Bar chart to a document. /// public static void BarChart() { Console.WriteLine( "\tBarChart()" ); // Creates a document using( DocX document = DocX.Create( ChartSample.ChartSampleOutputDirectory + @"BarChart.docx" ) ) { // Add a title document.InsertParagraph( "Bar Chart" ).FontSize( 15d ).SpacingAfter( 50d ).Alignment = Alignment.center; // Create a bar chart. var c = new BarChart(); c.AddLegend( ChartLegendPosition.Left, false ); c.BarDirection = BarDirection.Bar; c.BarGrouping = BarGrouping.Standard; c.GapWidth = 200; // Create the data. var canada = ChartData.CreateCanadaExpenses(); var usa = ChartData.CreateUSAExpenses(); var brazil = ChartData.CreateBrazilExpenses(); // Create and add series var s1 = new Series( "Brazil" ); s1.Color = Color.GreenYellow; s1.Bind( brazil, "Category", "Expenses" ); c.AddSeries( s1 ); var s2 = new Series( "USA" ); s2.Color = Color.LightBlue; s2.Bind( usa, "Category", "Expenses" ); c.AddSeries( s2 ); var s3 = new Series( "Canada" ); s3.Color = Color.Gray; s3.Bind( canada, "Category", "Expenses" ); c.AddSeries( s3 ); // Insert the chart into the document. document.InsertParagraph( "Expenses(M$) for selected categories per country" ).FontSize( 15 ).SpacingAfter( 10d ); document.InsertChart( c ); document.Save(); Console.WriteLine( "\tCreated: BarChart.docx\n" ); } } /// /// Add a Line chart to a document. /// public static void LineChart() { Console.WriteLine( "\tLineChartt()" ); // Creates a document using( DocX document = DocX.Create( ChartSample.ChartSampleOutputDirectory + @"LineChart.docx" ) ) { // Add a title document.InsertParagraph( "Line Chart" ).FontSize( 15d ).SpacingAfter( 50d ).Alignment = Alignment.center; // Create a line chart. var c = new LineChart(); c.AddLegend( ChartLegendPosition.Left, false ); // Create the data. var canada = ChartData.CreateCanadaExpenses(); var usa = ChartData.CreateUSAExpenses(); var brazil = ChartData.CreateBrazilExpenses(); // Create and add series var s1 = new Series( "Brazil" ); s1.Bind( brazil, "Category", "Expenses" ); c.AddSeries( s1 ); var s2 = new Series( "USA" ); s2.Bind( usa, "Category", "Expenses" ); c.AddSeries( s2 ); var s3 = new Series( "Canada" ); s3.Bind( canada, "Category", "Expenses" ); c.AddSeries( s3 ); // Insert chart into document document.InsertParagraph( "Expenses(M$) for selected categories per country" ).FontSize( 15 ).SpacingAfter( 10d ); document.InsertChart( c ); document.Save(); Console.WriteLine( "\tCreated: LineChart.docx\n" ); } } /// /// Add a Pie chart to a document. /// public static void PieChart() { Console.WriteLine( "\tPieChart()" ); // Creates a document using( DocX document = DocX.Create( ChartSample.ChartSampleOutputDirectory + @"PieChart.docx" ) ) { // Add a title document.InsertParagraph( "Pie Chart" ).FontSize( 15d ).SpacingAfter( 50d ).Alignment = Alignment.center; // Create a pie chart. var c = new PieChart(); c.AddLegend( ChartLegendPosition.Left, false ); // Create the data. var brazil = ChartData.CreateBrazilExpenses(); // Create and add series var s1 = new Series( "Canada" ); s1.Bind( brazil, "Category", "Expenses" ); c.AddSeries( s1 ); // Insert chart into document document.InsertParagraph( "Expenses(M$) for selected categories in Canada" ).FontSize( 15 ).SpacingAfter( 10d ); document.InsertChart( c ); document.Save(); Console.WriteLine( "\tCreated: PieChart.docx\n" ); } } /// /// Add a 3D bar chart to a document. /// /// public static void Chart3D() { Console.WriteLine( "\tChart3D)" ); // Creates a document using( DocX document = DocX.Create( ChartSample.ChartSampleOutputDirectory + @"3DChart.docx" ) ) { // Add a title document.InsertParagraph( "3D Chart" ).FontSize( 15d ).SpacingAfter( 50d ).Alignment = Alignment.center; // Create a 3D Bar chart. var c = new BarChart(); c.View3D = true; // Create the data. var brazil = ChartData.CreateBrazilExpenses(); // Create and add series var s1 = new Series( "Brazil" ); s1.Color = Color.GreenYellow; s1.Bind( brazil, "Category", "Expenses" ); c.AddSeries( s1 ); // Insert chart into document document.InsertParagraph( "Expenses(M$) for selected categories in Brazil" ).FontSize( 15 ).SpacingAfter( 10d ); document.InsertChart( c ); document.Save(); Console.WriteLine( "\tCreated: 3DChart.docx\n" ); } } #endregion } }