OWCChart11.cs 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290
  1. using System;
  2. using System.Data;
  3. using System.Text;
  4. namespace Ant.Service.Utilities
  5. {
  6. ///// <summary>
  7. ///// 利用OWC11进行作统计图的封装类。
  8. ///// 李天平 2005-8-31
  9. ///// </summary>
  10. //public class OWCChart11
  11. //{
  12. // #region 属性
  13. // private string _phaysicalimagepath;
  14. // private string _title;
  15. // private string _seriesname;
  16. // private int _picwidth;
  17. // private int _pichight;
  18. // private DataTable _datasource;
  19. // private string strCategory;
  20. // private string strValue;
  21. // public string PhaysicalImagePath
  22. // {
  23. // set { _phaysicalimagepath = value; }
  24. // get { return _phaysicalimagepath; }
  25. // }
  26. // public string Title
  27. // {
  28. // set { _title = value; }
  29. // get { return _title; }
  30. // }
  31. // public string SeriesName
  32. // {
  33. // set { _seriesname = value; }
  34. // get { return _seriesname; }
  35. // }
  36. // public int PicWidth
  37. // {
  38. // set { _picwidth = value; }
  39. // get { return _picwidth; }
  40. // }
  41. // public int PicHight
  42. // {
  43. // set { _pichight = value; }
  44. // get { return _pichight; }
  45. // }
  46. // public DataTable DataSource
  47. // {
  48. // set
  49. // {
  50. // _datasource = value;
  51. // strCategory = GetColumnsStr(_datasource);
  52. // strValue = GetValueStr(_datasource);
  53. // }
  54. // get { return _datasource; }
  55. // }
  56. // private string GetColumnsStr(System.Data.DataTable dt)
  57. // {
  58. // StringBuilder strList = new StringBuilder();
  59. // foreach (DataRow r in dt.Rows)
  60. // {
  61. // strList.Append(r[0].ToString() + '\t');
  62. // }
  63. // return strList.ToString();
  64. // }
  65. // private string GetValueStr(DataTable dt)
  66. // {
  67. // StringBuilder strList = new StringBuilder();
  68. // foreach (DataRow r in dt.Rows)
  69. // {
  70. // strList.Append(r[1].ToString() + '\t');
  71. // }
  72. // return strList.ToString();
  73. // }
  74. // #endregion
  75. // public OWCChart11()
  76. // {
  77. // }
  78. // public OWCChart11(string PhaysicalImagePath, string Title, string SeriesName)
  79. // {
  80. // _phaysicalimagepath = PhaysicalImagePath;
  81. // _title = Title;
  82. // _seriesname = SeriesName;
  83. // }
  84. // /// <summary>
  85. // /// 柱形图
  86. // /// </summary>
  87. // /// <returns></returns>
  88. // public string CreateColumn()
  89. // {
  90. // Microsoft.Office.Interop.Owc11.ChartSpace objCSpace = new Microsoft.Office.Interop.Owc11.ChartSpaceClass();//创建ChartSpace对象来放置图表
  91. // Microsoft.Office.Interop.Owc11.ChChart objChart = objCSpace.Charts.Add(0);//在ChartSpace对象中添加图表,Add方法返回chart对象
  92. // //指定图表的类型。类型由OWC.ChartChartTypeEnum枚举值得到//Microsoft.Office.Interop.OWC.ChartChartTypeEnum
  93. // objChart.Type = Microsoft.Office.Interop.Owc11.ChartChartTypeEnum.chChartTypeColumnClustered;
  94. // //指定图表是否需要图例
  95. // objChart.HasLegend = true;
  96. // //标题
  97. // objChart.HasTitle = true;
  98. // objChart.Title.Caption = _title;
  99. // // objChart.Title.Font.Bold=true;
  100. // // objChart.Title.Font.Color="blue";
  101. // #region 样式设置
  102. // // //旋转
  103. // // objChart.Rotation = 360;//表示指定三维图表的旋转角度
  104. // // objChart.Inclination = 10;//表示指定三维图表的视图斜率。有效范围为 -90 到 90
  105. // //背景颜色
  106. // // objChart.PlotArea.Interior.Color = "red";
  107. // //底座颜色
  108. // // objChart.PlotArea.Floor.Interior.Color = "green";
  109. // //
  110. // // objChart.Overlap = 50;//单个类别中标志之间的重叠量
  111. // #endregion
  112. // //x,y轴的图示说明
  113. // objChart.Axes[0].HasTitle = true;
  114. // objChart.Axes[0].Title.Caption = "X : 类别";
  115. // objChart.Axes[1].HasTitle = true;
  116. // objChart.Axes[1].Title.Caption = "Y : 数量";
  117. // //添加一个series
  118. // Microsoft.Office.Interop.Owc11.ChSeries ThisChSeries = objChart.SeriesCollection.Add(0);
  119. // //给定series的名字
  120. // ThisChSeries.SetData(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimSeriesNames,
  121. // Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(), SeriesName);
  122. // //给定分类
  123. // ThisChSeries.SetData(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimCategories,
  124. // Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(), strCategory);
  125. // //给定值
  126. // ThisChSeries.SetData(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimValues,
  127. // Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(), strValue);
  128. // Microsoft.Office.Interop.Owc11.ChDataLabels dl = objChart.SeriesCollection[0].DataLabelsCollection.Add();
  129. // dl.HasValue = true;
  130. // // dl.Position=Microsoft.Office.Interop.Owc11.ChartDataLabelPositionEnum.chLabelPositionOutsideEnd;
  131. // string filename = DateTime.Now.ToString("yyyyMMddHHmmssff") + ".gif";
  132. // string strAbsolutePath = _phaysicalimagepath + "\\" + filename;
  133. // objCSpace.ExportPicture(strAbsolutePath, "GIF", _picwidth, _pichight);//输出成GIF文件.
  134. // return filename;
  135. // }
  136. // /// <summary>
  137. // /// 饼图
  138. // /// </summary>
  139. // /// <returns></returns>
  140. // public string CreatePie()
  141. // {
  142. // Microsoft.Office.Interop.Owc11.ChartSpace objCSpace = new Microsoft.Office.Interop.Owc11.ChartSpaceClass();//创建ChartSpace对象来放置图表
  143. // Microsoft.Office.Interop.Owc11.ChChart objChart = objCSpace.Charts.Add(0);//在ChartSpace对象中添加图表,Add方法返回chart对象
  144. // //指定图表的类型
  145. // objChart.Type = Microsoft.Office.Interop.Owc11.ChartChartTypeEnum.chChartTypePie;
  146. // //指定图表是否需要图例
  147. // objChart.HasLegend = true;
  148. // //标题
  149. // objChart.HasTitle = true;
  150. // objChart.Title.Caption = _title;
  151. // //添加一个series
  152. // Microsoft.Office.Interop.Owc11.ChSeries ThisChSeries = objChart.SeriesCollection.Add(0);
  153. // //给定series的名字
  154. // ThisChSeries.SetData(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimSeriesNames,
  155. // Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(), SeriesName);
  156. // //给定分类
  157. // ThisChSeries.SetData(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimCategories,
  158. // Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(), strCategory);
  159. // //给定值
  160. // ThisChSeries.SetData(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimValues,
  161. // Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(), strValue);
  162. // //表示系列或趋势线上的单个数据标志
  163. // Microsoft.Office.Interop.Owc11.ChDataLabels dl = objChart.SeriesCollection[0].DataLabelsCollection.Add();
  164. // dl.HasValue = true;
  165. // dl.HasPercentage = true;
  166. // //图表绘图区的图例放置在右侧。
  167. // // dl.Position=Microsoft.Office.Interop.Owc11.ChartDataLabelPositionEnum.chLabelPositionRight;
  168. // string filename = DateTime.Now.Ticks.ToString() + ".gif";
  169. // string strAbsolutePath = _phaysicalimagepath + "\\" + filename;
  170. // objCSpace.ExportPicture(strAbsolutePath, "GIF", _picwidth, _pichight);//输出成GIF文件.
  171. // return filename;
  172. // }
  173. // /// <summary>
  174. // /// 条形图
  175. // /// </summary>
  176. // /// <returns></returns>
  177. // public string CreateBar()
  178. // {
  179. // Microsoft.Office.Interop.Owc11.ChartSpace objCSpace = new Microsoft.Office.Interop.Owc11.ChartSpaceClass();//创建ChartSpace对象来放置图表
  180. // Microsoft.Office.Interop.Owc11.ChChart objChart = objCSpace.Charts.Add(0);//在ChartSpace对象中添加图表,Add方法返回chart对象
  181. // //指定图表的类型。类型由OWC.ChartChartTypeEnum枚举值得到//Microsoft.Office.Interop.OWC.ChartChartTypeEnum
  182. // objChart.Type = Microsoft.Office.Interop.Owc11.ChartChartTypeEnum.chChartTypeBarClustered;
  183. // //指定图表是否需要图例
  184. // objChart.HasLegend = true;
  185. // //标题
  186. // objChart.HasTitle = true;
  187. // objChart.Title.Caption = _title;
  188. // // objChart.Title.Font.Bold=true;
  189. // // objChart.Title.Font.Color="blue";
  190. // #region 样式设置
  191. // // //旋转
  192. // // objChart.Rotation = 360;//表示指定三维图表的旋转角度
  193. // // objChart.Inclination = 10;//表示指定三维图表的视图斜率。有效范围为 -90 到 90
  194. // //背景颜色
  195. // // objChart.PlotArea.Interior.Color = "red";
  196. // //底座颜色
  197. // // objChart.PlotArea.Floor.Interior.Color = "green";
  198. // //
  199. // // objChart.Overlap = 50;//单个类别中标志之间的重叠量
  200. // #endregion
  201. // //x,y轴的图示说明
  202. // objChart.Axes[0].HasTitle = true;
  203. // objChart.Axes[0].Title.Caption = "X : 类别";
  204. // objChart.Axes[1].HasTitle = true;
  205. // objChart.Axes[1].Title.Caption = "Y : 数量";
  206. // //添加一个series
  207. // Microsoft.Office.Interop.Owc11.ChSeries ThisChSeries = objChart.SeriesCollection.Add(0);
  208. // //给定series的名字
  209. // ThisChSeries.SetData(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimSeriesNames,
  210. // Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(), SeriesName);
  211. // //给定分类
  212. // ThisChSeries.SetData(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimCategories,
  213. // Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(), strCategory);
  214. // //给定值
  215. // ThisChSeries.SetData(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimValues,
  216. // Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(), strValue);
  217. // Microsoft.Office.Interop.Owc11.ChDataLabels dl = objChart.SeriesCollection[0].DataLabelsCollection.Add();
  218. // dl.HasValue = true;
  219. // // dl.Position=Microsoft.Office.Interop.Owc11.ChartDataLabelPositionEnum.chLabelPositionOutsideEnd;
  220. // string filename = DateTime.Now.ToString("yyyyMMddHHmmssff") + ".gif";
  221. // string strAbsolutePath = _phaysicalimagepath + "\\" + filename;
  222. // objCSpace.ExportPicture(strAbsolutePath, "GIF", _picwidth, _pichight);//输出成GIF文件.
  223. // return filename;
  224. // }
  225. //}
  226. }