大众计算机学习网

专门提供各种电脑教程

在ASP.NET中利用OWC生成柱状图和饼状图示例代码

Admin | 2008-4-13 9:45:26 | 被阅次数 | 25236

  首先在项目中添加microsoft office web components 11.0的引用,然后在需要的页面中引用using Microsoft.Office.Interop.Owc11;

  一、生成柱状图
     
   //创建X坐标的值,表示月份
   int[] Month = new int[3] { 1, 2, 3 };
   //创建Y坐标的值,表示销售额
   double[] Count = new double[3] { 120,240,220};
   //创建图表空间
   ChartSpace mychartSpace = new ChartSpace();
   //在图表空间内添加一个图表对象
   ChChart mychart = mychartSpace.Charts.Add(0);
   //设置图表类型,本例使用柱形
   mychart.Type = ChartChartTypeEnum.chChartTypeColumnClustered;
   //设置图表的一些属性
   //是否需要图例
   mychart.HasLegend = true;
   //是否需要主题
   mychart.HasTitle = true;
   //主题内容
   mychart.Title.Caption = "一季度总结";
   //设置x,y坐标
   mychart.Axes[0].HasTitle = true;
   mychart.Axes[0].Title.Caption = "月份";
   mychart.Axes[1].HasTitle = true;
   mychart.Axes[1].Title.Caption = "销量";
   //添加三个图表块
   mychart.SeriesCollection.Add(0);
   mychart.SeriesCollection.Add(0);
   mychart.SeriesCollection.Add(0);
   //设置图表块的属性
   //标题
   mychart.SeriesCollection[0].Caption = "一月份";
   //X坐标的值属性
   mychart.SeriesCollection[0].SetData(ChartDimensionsEnum.chDimCategories,(int)ChartSpecialDataSourcesEnum.chDataLiteral, Month[0]);
   //y坐标的值属性
   mychart.SeriesCollection[0].SetData(ChartDimensionsEnum.chDimValues,(int)ChartSpecialDataSourcesEnum.chDataLiteral, Count[0]);
   //第二个块
   mychart.SeriesCollection[1].Caption = "二月份";
   //X坐标的值属性
   mychart.SeriesCollection[1].SetData(ChartDimensionsEnum.chDimCategories,(int)ChartSpecialDataSourcesEnum.chDataLiteral, Month[1]);
   //y坐标的值属性
   mychart.SeriesCollection[1].SetData(ChartDimensionsEnum.chDimValues,(int)ChartSpecialDataSourcesEnum.chDataLiteral, Count[1]);
   //第三个块
   mychart.SeriesCollection[2].Caption = "三月份";
   //X坐标的值属性
   mychart.SeriesCollection[2].SetData(ChartDimensionsEnum.chDimCategories,(int)ChartSpecialDataSourcesEnum.chDataLiteral, Month[2]);
   //y坐标的值属性
   mychart.SeriesCollection[2].SetData(ChartDimensionsEnum.chDimValues,(int)ChartSpecialDataSourcesEnum.chDataLiteral, Count[2]);
   //生成图片
   mychartSpace.ExportPicture(Server.MapPath(".") + @"\test.jpg", "jpg", 500, 450);
   //加载图片
   Image1.ImageUrl = Server.MapPath(".") + @"\test.jpg";
   } 


   二、生成饼状图


   protected void Page_Load(object sender, EventArgs e)
   {
   //创建X坐标的值,表示月份
   int[] Month ={ 1, 2, 3 };
   //创建Y坐标的值,表示销售额
   double[] Count ={ 120, 240, 220 };
   string strDataName = "";
   string strData = "";
   //创建图表空间
   ChartSpace mychartSpace = new ChartSpace();
   //在图表空间内添加一个图表对象
   ChChart mychart = mychartSpace.Charts.Add(0);
   //设置每块饼的数据
   for (int i = 0; i < Count.Length; i++)
   {
   strDataName += Month + "\t";
   strData += Count.ToString() + "\t";
   }
   //设置图表类型,本例使用柱形
   mychart.Type = ChartChartTypeEnum.chChartTypePie;
   //设置图表的一些属性
   //是否需要图例
   mychart.HasLegend = true;
   //是否需要主题
   mychart.HasTitle = true;
   //主题内容
   mychart.Title.Caption = "一季度总结";
   //添加图表块
   mychart.SeriesCollection.Add(0);
   //设置图表块的属性
   //分类属性
   mychart.SeriesCollection[0].SetData(ChartDimensionsEnum.chDimCategories,
   (int)ChartSpecialDataSourcesEnum.chDataLiteral, strDataName);
   //值属性
   mychart.SeriesCollection[0].SetData(ChartDimensionsEnum.chDimValues,
   (int)ChartSpecialDataSourcesEnum.chDataLiteral, strData);
   //显示百分比
   ChDataLabels mytb= mychart.SeriesCollection[0].DataLabelsCollection.Add();
   mytb.HasPercentage = true;
   //生成图片
   mychartSpace.ExportPicture(Server.MapPath(".") + @"\test.gif", "gif", 500, 450);
   //加载图片
   Image1.ImageUrl = Server.MapPath(".") + @"\test.gif";
   }