Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207
  1. /***************************************************************************************
  2. DocX – DocX is the community edition of Xceed Words for .NET
  3. Copyright (C) 2009-2017 Xceed Software Inc.
  4. This program is provided to you under the terms of the Microsoft Public
  5. License (Ms-PL) as published at http://wpftoolkit.codeplex.com/license
  6. For more features and fast professional support,
  7. pick up Xceed Words for .NET at https://xceed.com/xceed-words-for-net/
  8. *************************************************************************************/
  9. using System;
  10. using System.Drawing;
  11. using System.IO;
  12. namespace Xceed.Words.NET.Examples
  13. {
  14. public class ChartSample
  15. {
  16. #region Private Members
  17. private const string ChartSampleOutputDirectory = Program.SampleDirectory + @"Chart\Output\";
  18. #endregion
  19. #region Constructors
  20. static ChartSample()
  21. {
  22. if( !Directory.Exists( ChartSample.ChartSampleOutputDirectory ) )
  23. {
  24. Directory.CreateDirectory( ChartSample.ChartSampleOutputDirectory );
  25. }
  26. }
  27. #endregion
  28. #region Public Methods
  29. /// <summary>
  30. /// Add a Bar chart to a document.
  31. /// </summary>
  32. public static void BarChart()
  33. {
  34. Console.WriteLine( "\tBarChart()" );
  35. // Creates a document
  36. using( DocX document = DocX.Create( ChartSample.ChartSampleOutputDirectory + @"BarChart.docx" ) )
  37. {
  38. // Add a title
  39. document.InsertParagraph( "Bar Chart" ).FontSize( 15d ).SpacingAfter( 50d ).Alignment = Alignment.center;
  40. // Create a bar chart.
  41. var c = new BarChart();
  42. c.AddLegend( ChartLegendPosition.Left, false );
  43. c.BarDirection = BarDirection.Bar;
  44. c.BarGrouping = BarGrouping.Standard;
  45. c.GapWidth = 200;
  46. // Create the data.
  47. var canada = ChartData.CreateCanadaExpenses();
  48. var usa = ChartData.CreateUSAExpenses();
  49. var brazil = ChartData.CreateBrazilExpenses();
  50. // Create and add series
  51. var s1 = new Series( "Brazil" );
  52. s1.Color = Color.GreenYellow;
  53. s1.Bind( brazil, "Category", "Expenses" );
  54. c.AddSeries( s1 );
  55. var s2 = new Series( "USA" );
  56. s2.Color = Color.LightBlue;
  57. s2.Bind( usa, "Category", "Expenses" );
  58. c.AddSeries( s2 );
  59. var s3 = new Series( "Canada" );
  60. s3.Color = Color.Gray;
  61. s3.Bind( canada, "Category", "Expenses" );
  62. c.AddSeries( s3 );
  63. // Insert the chart into the document.
  64. document.InsertParagraph( "Expenses(M$) for selected categories per country" ).FontSize( 15 ).SpacingAfter( 10d );
  65. document.InsertChart( c );
  66. document.Save();
  67. Console.WriteLine( "\tCreated: BarChart.docx\n" );
  68. }
  69. }
  70. /// <summary>
  71. /// Add a Line chart to a document.
  72. /// </summary>
  73. public static void LineChart()
  74. {
  75. Console.WriteLine( "\tLineChartt()" );
  76. // Creates a document
  77. using( DocX document = DocX.Create( ChartSample.ChartSampleOutputDirectory + @"LineChart.docx" ) )
  78. {
  79. // Add a title
  80. document.InsertParagraph( "Line Chart" ).FontSize( 15d ).SpacingAfter( 50d ).Alignment = Alignment.center;
  81. // Create a line chart.
  82. var c = new LineChart();
  83. c.AddLegend( ChartLegendPosition.Left, false );
  84. // Create the data.
  85. var canada = ChartData.CreateCanadaExpenses();
  86. var usa = ChartData.CreateUSAExpenses();
  87. var brazil = ChartData.CreateBrazilExpenses();
  88. // Create and add series
  89. var s1 = new Series( "Brazil" );
  90. s1.Bind( brazil, "Category", "Expenses" );
  91. c.AddSeries( s1 );
  92. var s2 = new Series( "USA" );
  93. s2.Bind( usa, "Category", "Expenses" );
  94. c.AddSeries( s2 );
  95. var s3 = new Series( "Canada" );
  96. s3.Bind( canada, "Category", "Expenses" );
  97. c.AddSeries( s3 );
  98. // Insert chart into document
  99. document.InsertParagraph( "Expenses(M$) for selected categories per country" ).FontSize( 15 ).SpacingAfter( 10d );
  100. document.InsertChart( c );
  101. document.Save();
  102. Console.WriteLine( "\tCreated: LineChart.docx\n" );
  103. }
  104. }
  105. /// <summary>
  106. /// Add a Pie chart to a document.
  107. /// </summary>
  108. public static void PieChart()
  109. {
  110. Console.WriteLine( "\tPieChart()" );
  111. // Creates a document
  112. using( DocX document = DocX.Create( ChartSample.ChartSampleOutputDirectory + @"PieChart.docx" ) )
  113. {
  114. // Add a title
  115. document.InsertParagraph( "Pie Chart" ).FontSize( 15d ).SpacingAfter( 50d ).Alignment = Alignment.center;
  116. // Create a pie chart.
  117. var c = new PieChart();
  118. c.AddLegend( ChartLegendPosition.Left, false );
  119. // Create the data.
  120. var brazil = ChartData.CreateBrazilExpenses();
  121. // Create and add series
  122. var s1 = new Series( "Canada" );
  123. s1.Bind( brazil, "Category", "Expenses" );
  124. c.AddSeries( s1 );
  125. // Insert chart into document
  126. document.InsertParagraph( "Expenses(M$) for selected categories in Canada" ).FontSize( 15 ).SpacingAfter( 10d );
  127. document.InsertChart( c );
  128. document.Save();
  129. Console.WriteLine( "\tCreated: PieChart.docx\n" );
  130. }
  131. }
  132. /// <summary>
  133. /// Add a 3D bar chart to a document.
  134. /// </summary>
  135. ///
  136. public static void Chart3D()
  137. {
  138. Console.WriteLine( "\tChart3D)" );
  139. // Creates a document
  140. using( DocX document = DocX.Create( ChartSample.ChartSampleOutputDirectory + @"3DChart.docx" ) )
  141. {
  142. // Add a title
  143. document.InsertParagraph( "3D Chart" ).FontSize( 15d ).SpacingAfter( 50d ).Alignment = Alignment.center;
  144. // Create a 3D Bar chart.
  145. var c = new BarChart();
  146. c.View3D = true;
  147. // Create the data.
  148. var brazil = ChartData.CreateBrazilExpenses();
  149. // Create and add series
  150. var s1 = new Series( "Brazil" );
  151. s1.Color = Color.GreenYellow;
  152. s1.Bind( brazil, "Category", "Expenses" );
  153. c.AddSeries( s1 );
  154. // Insert chart into document
  155. document.InsertParagraph( "Expenses(M$) for selected categories in Brazil" ).FontSize( 15 ).SpacingAfter( 10d );
  156. document.InsertChart( c );
  157. document.Save();
  158. Console.WriteLine( "\tCreated: 3DChart.docx\n" );
  159. }
  160. }
  161. #endregion
  162. }
  163. }