asp.net 实现图形统计功能

本文介绍了如何在ASP.NET中利用Microsoft Office XP Web Components库创建图形统计图表,包括线性图,并展示了设置图表类型、图例、标题以及数据的具体代码示例。

所有运行成功的前提是: 必须安装了 office

default.aspx 页面

<body>
    <form id="form1" runat="server">
    <div>
        <asp:Image ID="Image1" runat="server" /></div>
    </form>
</body>

在aspx.cs 文件里面写上

引入空间的同时,还要在bin 文件里添加引用。

using Microsoft.Office.Interop.Owc11;  (引入空间)

 

Microsoft  Office  XP Web Components(添加引用)  

 

private void MakeLineChart()
    {

        //Y坐标轴

        string[] DataName = { "星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日" };

        //第一条曲线的数据

        int[] Data = { 0, 10, 20, 100, 40, 50, 60 };

        //第二条曲线的数据

        int[] Data1 = { 100, 50, 41, 86 };

        //第三条曲线的数据

        int[] Data2 = { 10, 50, 100, 30, 50, 60 };

        string strValue1 = "";

        string strValue = "";

        string strValue2 = "";

        string strCateory = "";

        //循环取得数据并格式化为OWC10需要的格式,(加'/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';

        }

        OWC10.ChartSpaceClass mySpace = new OWC10.ChartSpaceClass();//创建ChartSpace对象来放置图表

        OWC10.ChChart myChart = mySpace.Charts.Add(0);//在ChartSpace对象中添加图表,Add方法返回chart对象

        myChart.Type = OWC10.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 = "日期"; //纵轴名称

        //添加一个series(序列)

        myChart.SeriesCollection.Add(0);

        //给定series的名字

        myChart.SeriesCollection[0].SetData(OWC10.ChartDimensionsEnum.chDimSeriesNames, (int)OWC10.ChartSpecialDataSourcesEnum.chDataLiteral, "购买");

        //给定series的分类

        myChart.SeriesCollection[0].SetData(OWC10.ChartDimensionsEnum.chDimCategories, (int)OWC10.ChartSpecialDataSourcesEnum.chDataLiteral, strCateory);

        //给定具体值

        myChart.SeriesCollection[0].SetData(OWC10.ChartDimensionsEnum.chDimValues, (int)OWC10.ChartSpecialDataSourcesEnum.chDataLiteral, strValue);

        //添加一个series

        myChart.SeriesCollection.Add(1);

        //给定series的名字

        myChart.SeriesCollection[1].SetData(OWC10.ChartDimensionsEnum.chDimSeriesNames, (int)OWC10.ChartSpecialDataSourcesEnum.chDataLiteral, "出售");

        //给定series的分类

        myChart.SeriesCollection[1].SetData(OWC10.ChartDimensionsEnum.chDimCategories, (int)OWC10.ChartSpecialDataSourcesEnum.chDataLiteral, strCateory);

        //给定具体值

        myChart.SeriesCollection[1].SetData(OWC10.ChartDimensionsEnum.chDimValues, (int)OWC10.ChartSpecialDataSourcesEnum.chDataLiteral, strValue1);

        //添加一个series

        myChart.SeriesCollection.Add(2);

        //给定series的名字

        myChart.SeriesCollection[2].SetData(OWC10.ChartDimensionsEnum.chDimSeriesNames, (int)OWC10.ChartSpecialDataSourcesEnum.chDataLiteral, "总成交");

        //给定series的分类

        myChart.SeriesCollection[2].SetData(OWC10.ChartDimensionsEnum.chDimCategories, (int)OWC10.ChartSpecialDataSourcesEnum.chDataLiteral, strCateory);

        //给定具体值

        myChart.SeriesCollection[2].SetData(OWC10.ChartDimensionsEnum.chDimValues, (int)OWC10.ChartSpecialDataSourcesEnum.chDataLiteral, strValue2);

        //输出成GIF文件

        string strAbsolutePath = (Server.MapPath(".")) + @"/Image/tempChart.gif";

        Response.Write(strAbsolutePath);

        mySpace.ExportPicture(strAbsolutePath, "GIF", 300, 300); //输出图表

        //创建GIF文件的相对路径

        string strRelativePath = "Image/tempChart.gif";

        //把图片添加到Image

        Image1.ImageUrl = strRelativePath;

    }
    public void lixing()
    {
        //图表类型枚举

OWC11.ChartChartTypeEnum[] chartTypes = new OWC11.ChartChartTypeEnum[]
{

ChartChartTypeEnum.chChartTypeColumnClustered,

  ChartChartTypeEnum.chChartTypeColumn3D,

  ChartChartTypeEnum.chChartTypeBarClustered,

  ChartChartTypeEnum.chChartTypeBar3D,

  ChartChartTypeEnum.chChartTypeArea,

  ChartChartTypeEnum.chChartTypeArea3D,

  ChartChartTypeEnum.chChartTypeDoughnut,

  ChartChartTypeEnum.chChartTypeLineStacked,

  ChartChartTypeEnum.chChartTypeLine3D,

  ChartChartTypeEnum.chChartTypeLineMarkers,

  ChartChartTypeEnum.chChartTypePie,

  ChartChartTypeEnum.chChartTypePie3D,

  ChartChartTypeEnum.chChartTypeRadarSmoothLine,

  ChartChartTypeEnum.chChartTypeSmoothLine
};

string[] chartTypesCh = new string[] { "垂直柱状统计图", "3D垂直柱状统计图", "水平柱状统计图","3D水平柱状统计图", "区域统计图", "3D区域统计图", "中空饼图", "折线统计图", "3D折线统计图", "折线带点统计图", "饼图", "3D饼图", "网状统计图", "弧线统计图" };
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        MakeLineChart();
    }

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值