生成曲线图的方法很多,今天无意中看到一个ASP的网站用owc11.exe生成曲线图,由于好奇就找了些文章看了下,把学习的心得跟大家一起分享:
第一:下载一个owc11.exe,我用的是OFFICE 2003所以就是下这个了,再微软网站上有的。
第二:建立一个项目添加对Interop.OWC.dll的引用。
第三:在页面上添加一个Image 和B utton,代码如下:
    <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
        
<asp:Image ID="Image1" runat="server" Height="289px" Width="453px" />
第四:添加命名空间,

using OWC;
同时在BUTTON点击事件里调用方法
 MakeLineChart();
第五:就是最重要的一个方法。
 /// <summary>
    
/// 生成统计图表
    
/// </summary>

    private void MakeLineChart()
    
{
        
//Y坐标轴
        string[] DataName = "星期一""星期二""星期三""星期四""星期五""星期六""星期日" };
        
//第一条曲线的数据
        int[] Data = 01020100405060 };
        
//第二条曲线的数据
        int[] Data1 = 100504186 };
        
//第三条曲线的数据
        int[] Data2 = 1050100305060 };
        
string strValue1 = "";
        
string strValue = "";
        
string strValue2 = "";

        
string strCateory = "";

        
//循环取得数据并格式化为OWC需要的格式,(加'\t')
        for (int i = 0; i < DataName.Length; i++)
        
{
            strCateory 
+= DataName[i] + '\t';
        }

        
for (int i = 0; i < Data.Length; i++)
        
{
            strValue 
+= Data[i].ToString() + '\t';
        }

        
for (int i = 0; i < Data1.Length; i++)
        
{
            strValue1 
+= Data1[i].ToString() + '\t';
        }

        
for (int i = 0; i < Data2.Length; i++)
        
{
            strValue2 
+= Data2[i].ToString() + '\t';
        }

        
//创建ChartSpace对象来放置图表
        OWC.ChartSpace mySpace = new OWC.ChartSpaceClass();
        
//在ChartSpace对象中添加图表,Add方法返回chart对象
        OWC.WCChart myChart = mySpace.Charts.Add(0);
        
//指定图表的类型为线性图
        myChart.Type = OWC.ChartChartTypeEnum.chChartTypeSmoothLine;
        
//指定图表是否需要图例
        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 = "日期";
        
//添加一个series
        myChart.SeriesCollection.Add(0);
        
//给定series的名字
        myChart.SeriesCollection[0].SetData(OWC.ChartDimensionsEnum.chDimSeriesNames, (int)OWC.ChartSpecialDataSourcesEnum.chDataLiteral, "购买");
        
//给定series的分类
        myChart.SeriesCollection[0].SetData(OWC.ChartDimensionsEnum.chDimCategories, (int)OWC.ChartSpecialDataSourcesEnum.chDataLiteral, strCateory);
        
//给定具体值
        myChart.SeriesCollection[0].SetData(OWC.ChartDimensionsEnum.chDimValues, (int)OWC.ChartSpecialDataSourcesEnum.chDataLiteral, strValue);

        
//添加一个series
        myChart.SeriesCollection.Add(1);
        
//给定series的名字
        myChart.SeriesCollection[1].SetData(OWC.ChartDimensionsEnum.chDimSeriesNames, (int)OWC.ChartSpecialDataSourcesEnum.chDataLiteral, "出售");
        
//给定series的分类
        myChart.SeriesCollection[1].SetData(OWC.ChartDimensionsEnum.chDimCategories, (int)OWC.ChartSpecialDataSourcesEnum.chDataLiteral, strCateory);
        
//给定具体值
        myChart.SeriesCollection[1].SetData(OWC.ChartDimensionsEnum.chDimValues, (int)OWC.ChartSpecialDataSourcesEnum.chDataLiteral, strValue1);

        
//添加一个series
        myChart.SeriesCollection.Add(2);
        
//给定series的名字
        myChart.SeriesCollection[2].SetData(OWC.ChartDimensionsEnum.chDimSeriesNames, (int)OWC.ChartSpecialDataSourcesEnum.chDataLiteral, "总成交");
        
//给定series的分类
        myChart.SeriesCollection[2].SetData(OWC.ChartDimensionsEnum.chDimCategories, (int)OWC.ChartSpecialDataSourcesEnum.chDataLiteral, strCateory);
        
//给定具体值
        myChart.SeriesCollection[2].SetData(OWC.ChartDimensionsEnum.chDimValues, (int)OWC.ChartSpecialDataSourcesEnum.chDataLiteral, strValue2);



        
//输出成GIF文件
        string strAbsolutePath = (Server.MapPath(".")) + @"\Images\tempChart.gif";
        mySpace.ExportPicture(strAbsolutePath, 
"GIF"300300);
        
//创建GIF文件的相对路径
        string strRelativePath = "./Images/tempChart.gif";
        
//把图片添加到Image
 
        
this.Image1.ImageUrl = strRelativePath;

    }
//end
运行就OK了
posted on 2007-03-26 21:05  过江  阅读(1938)  评论(6编辑  收藏  举报