jackyrong

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

   asp.net 2.0中,要显示图型的话,可以用ms office 2003的owc组件,可以十分方便地看到图表,在工程中,
首先添加microsoft office web components 11.0的引用就可以了,然后要
using Microsoft.Office.Interop.Owc11;

1 生成柱状图
   //创建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";
    }
2  
 生成饼状图
 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[i] + "\t";
            strData += Count[i].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";
    }

posted on 2007-05-23 23:40  jackyrong的世界  阅读(2447)  评论(0编辑  收藏  举报