`
touchinsert
  • 浏览: 1335143 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

[转]ASP.NET2.0轻松搞定统计图表【月儿原创】

 
阅读更多

本文转自:http://blog.csdn.net/21aspnet/archive/2007/03/27/1543320.aspx

原文如下:本文讲述如何绘制条形图折线图柱形图面积图等常见图形。效果图

手把手教程:原理:OWC是Office Web Compent的缩写,即Microsoft的Office Web组件,它为在Web中绘制图形提供了灵活的同时也是最基本的机制。在一个intranet环境中,如果可以假设客户机上存在特定的浏览器和一些功能强大的软件(如IE6和Office 2000/XP/2003),那么就有能力利用Office Web组件提供一个交互式图形开发环境。这种模式下,客户端工作站将在整个任务中分担很大的比重。理论上说Excel能做的图都可以通过OWC画。第一步:
右键点击网站根目录引用。如图所示:
第二步:
点击“添加引用”后弹出一个窗口,添加OWC的引用。如图所示:

点“确定”。第三步:
代码中引用Microsoft.Office.Interop.Owc11。全部代码
后台代码
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;using System.Data.SqlClient; //添加数据操作引用
using Microsoft.Office.Interop.Owc11;//添加Office组件引用public partial class OWCdrawing : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{ //连接数据库并获取特定字符串
string strSeriesName = "图例1";
string ConnectString = "Server=(local);DataBase=web;Uid=sa;Pwd=sa";
string Sql = "SELECT month,Allcount FROM Chart";
SqlConnection myConn = new SqlConnection(ConnectString);
myConn.Open();
SqlDataAdapter Da = new SqlDataAdapter(Sql, myConn);
DataSet ds = new DataSet();
Da.Fill(ds); //存放月
string[] MonNum = new string[12];
//存放数据
string[] MonCount = new string[12];
//为数组赋值
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
MonNum[i] = ds.Tables[0].Rows[i][0].ToString();
MonCount[i] = ds.Tables[0].Rows[i][1].ToString();
}
//为x轴指定特定字符串,以便显示数据
string strXdata = String.Empty;
foreach (string strData in MonNum)
{
strXdata += strData + "\t";
}
string strYdata = String.Empty;
//为y轴指定特定的字符串,以便与x轴相对应
foreach (string strValue in MonCount)
{
strYdata += strValue + "\t";
} //创建ChartSpace对象来放置图表
ChartSpace laySpace = new ChartSpaceClass(); //在ChartSpace对象中添加图表
ChChart InsertChart = laySpace.Charts.Add(0); //指定绘制图表的类型。类型可以通过OWC.ChartChartTypeEnum枚举值得到
//InsertChart.Type = ChartChartTypeEnum.chChartTypeLine;//折线图
//InsertChart.Type = ChartChartTypeEnum.chChartTypeArea;//面积图
//InsertChart.Type = ChartChartTypeEnum.chChartTypeBarClustered;//条形图
InsertChart.Type = ChartChartTypeEnum.chChartTypeColumnClustered;//柱形图 //指定图表是否需要图例标注
InsertChart.HasLegend = false;
InsertChart.HasTitle = true;//为图表添加标题
InsertChart.Title.Caption = "2006年清清月儿每个月花销流水账";//标题名称 //为x,y轴添加图示说明
InsertChart.Axes[0].HasTitle = true;
InsertChart.Axes[0].Title.Caption = "";//月份
InsertChart.Axes[1].HasTitle = true;
InsertChart.Axes[1].Scaling.SplitMinimum = 200;
InsertChart.Axes[1].Title.Caption = "数量"; //添加一个series系列
InsertChart.SeriesCollection.Add(0); //给定series系列的名字
InsertChart.SeriesCollection[0].SetData(ChartDimensionsEnum.chDimSeriesNames, +(int)ChartSpecialDataSourcesEnum.chDataLiteral, strSeriesName); //给定分类
InsertChart.SeriesCollection[0].SetData(ChartDimensionsEnum.chDimCategories, +(int)ChartSpecialDataSourcesEnum.chDataLiteral, strXdata); //给定值
InsertChart.SeriesCollection[0].SetData(ChartDimensionsEnum.chDimValues, (int)ChartSpecialDataSourcesEnum.chDataLiteral, strYdata);
//输出文件.
string strAbsolutePath = (Server.MapPath(".")) + "http://www.cnblogs.com/freeliver54/admin/file://ShowData.gif/";
laySpace.ExportPicture(strAbsolutePath, "GIF", 400, 250); //创建GIF文件的相对路径.
string strRelativePath = "./ShowData.gif"; //把图片添加到placeholder中,并在页面上显示
string strImageTag = "<IMG SRC='" + strRelativePath + "'/>";
this.PlaceHolder1.Controls.Add(new LiteralControl(strImageTag));
}
}
前台代码
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="OWCdrawing.aspx.cs" Inherits="OWCdrawing" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>清清月儿 http://blog.csdn.net/21aspnet</title>
</head>
<body>
<form id="form1" runat="server">
<div style="text-align: left">
<table style="width: 600px">
<tr>
<td colspan="3" style="height: 20px">
<strong>怎么样在ASP.NET2.0中使用OWC组件画图</strong></td>
</tr>
<tr>
<td colspan="3" rowspan="2" style="height: 21px">
<asp:PlaceHolder ID="PlaceHolder1" runat="server"></asp:PlaceHolder>
</td>
</tr>
<tr>
</tr>
</table>

</div>
</form>
</body>
</html>
数据库SQL脚本
USE [web]
GO
/****** 对象: Table [dbo].[Chart] 脚本日期: 03/27/2007 22:26:00 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Chart](
[id] [int] IDENTITY(1,1) NOT NULL,
[month] [smallint] NULL,
[Allcount] [int] NULL
) ON [PRIMARY]
在数据库建好表以后要自己手动假想有12条数据,手动添加,最终结果类似下图:
后台程序说明:
最关键就是InsertChart.Type = ChartChartTypeEnum.chChartTypeColumnClustered;你可以在ChartChartTypeEnum后出其他方法。如图所示:
下面列出的是其他类型图:折线图:

面积图:
条形图:

OWC什么图形都可以画,还能画立体的,请大家自己尝试。可以参考OWC手册,具体位置:
C:\Program Files\Common Files\Microsoft Shared\Web Components\11\2052\OWCVBA11.CHM

分享到:
评论

相关推荐

    ASP.NET2.0轻松搞定统计图表

    原理:OWC是Office Web Compent的缩写,即Microsoft的Office Web组件,它为在Web中绘制图形提供了灵活的同时也是最基本的机制。在一个intranet环境中,如果可以假设客户机上存在特定的浏览器和一些功能强大的软件...

    ASP.NET2.0轻松搞定统计图表.doc

    通过这种方式,开发者可以使用ASP.NET 2.0结合OWC组件轻松创建动态、交互式的统计图表,使Web应用的数据展示更加直观和生动。值得注意的是,虽然OWC在某些情况下非常实用,但它依赖于客户端安装特定的Office组件,...

    ASP.NET 2.0入门经典:C#编程篇.pdf

    ASP.NET 2.0是微软开发的一个用于构建Web应用程序的框架,它建立在.NET Framework之上,为开发者提供了更高效、更灵活的Web开发环境。本书《ASP.NET 2.0入门经典:C#编程篇》显然是针对初学者设计的,旨在帮助读者...

    ASP.net 2.0网络编程从入门到精通-修订.rar

    ASP.NET 2.0是微软开发的一个用于构建Web应用程序的框架,它建立在.NET Framework的基础之上,为开发者提供了丰富的功能和高效的语言支持。本资源"ASP.NET 2.0网络编程从入门到精通-修订"显然是一个教程文档,旨在...

    ASP.NET 2.0程序设计案例教程(课件)

    3. **数据绑定**:ASP.NET 2.0提供了强大的数据绑定机制,如DataSource控件和GridView控件,允许开发者轻松地从数据库或其他数据源检索和显示数据。课程可能包含如何使用这些控件进行数据操作的实例。 4. **状态...

    Programming Microsoft ASP.NET 2.0 Applications - Advanced Topics

    《Programming Microsoft ASP.NET 2.0 Applications - Advanced Topics》是一本深入探讨ASP.NET 2.0高级应用开发的专业书籍。本书旨在帮助开发者充分利用ASP.NET 2.0的强大功能,实现高效、可扩展和高度定制化的Web...

    asp.net 2.0动态网站开发教程

    ASP.NET 2.0是微软公司推出的一种用于构建Web应用程序的框架,它是.NET Framework的一部分,为开发者提供了丰富的功能和工具,使得创建动态、交互式的Web站点变得更加容易。本教程将深入探讨ASP.NET 2.0的核心特性,...

    天轰穿ASP.NET2.0视频教程代码(共两部份)

    此"天轰穿ASP.NET2.0视频教程"针对初学者和进阶开发者,通过详细的教学指导,帮助用户掌握ASP.NET 2.0的核心概念和技术。 1. **ASP.NET 2.0架构** ASP.NET 2.0基于.NET Framework 2.0,引入了统一的页面生命周期...

    ASP.NET 2.0高级编程(特别版)》[英文CHM电子书+源代码].

    在全面介绍ASP.NET各种编程技能的同时重点介绍了ASP.NET 2.0版本中的巨大变化,详细阐述了ASP.NET 2.0中所包含的每个新特性。书中提供了大量的实例,可帮助读者快速掌握如何在.NET Framework下构建功能强大的ASP.NET...

    ASP.NET 2.0入门经典(第4版)

    《ASP.NET 2.0 入门经典》将逐步引导您使用 ASP.NET 2.0 创建动态的、数据驱动的、复杂的Web站点。在本章结束时,我们将解释一些基本的想法并介绍一个完整的示例站点。然后将学习怎样使用 Visual Web Developer ...

    Wrox Asp.Net 2.0 Instant Results(asp.net2.0经典案例教程)

    《Wrox Asp.Net 2.0 Instant Results》是一本针对ASP.NET 2.0技术的经典案例教程,旨在帮助读者快速掌握并应用ASP.NET 2.0开发动态网站的技能。这本书由经验丰富的IT专家撰写,以实践为导向,通过丰富的实例来解释和...

    Asp.net 2.0高级编程(pdf)

    内容代码,使用VB.net和C# 两种解释 &lt;br&gt;第1章ASP.NET2.0概述 1 1.1简史 1 1.2ASP.NET2.0的目标 2 1.2.1开发人员的效率 3 1.2.2管理 5 1.2.3性能和可伸缩性 8 1.3ASP.NET2.0的其他新特性 8 ...

    ASP.NET2.0实用教程(C#版)书中例子.rar

    这个“ASP.NET2.0实用教程(C#版)书中例子”PPT很可能会涵盖以上这些主题,并通过实例演示如何在实践中应用这些技术。PPT中的例子可能包括创建简单的Web表单、使用控件进行数据绑定、实现用户身份验证以及利用AJAX...

    ASP.NET2.0 经典案例教程

     本书通过深入剖析12个使用ASP.NET 2.0开发的项目,全面阐述了ASP.NET 2.0应用程序的架构及ASP.NET 2.0新增的控件和功能。通过探索这些项目的设计和代码,读者可快速掌握使用ASP.NET 2.0开发应用程序的技巧,从空白...

    ASP.NET2.0+sql server 网络应用开发详解

    《ASP.NET 2.0 + SQL Server 网络应用开发详解》这本书是针对使用ASP.NET 2.0和SQL Server进行Web应用开发的详细指南。ASP.NET是Microsoft .NET框架的一部分,它提供了一种高效、面向对象的方式来构建动态网站、web...

    ASP.NET AJAX程序设计——第I卷:服务器端ASP.NET 2.0 AJAX Extensions与ASP.NET AJAX Control Toolkit 源代码

    这部分内容不需要读者有任何的客户端开发知识,只要在Visual Stuio中轻松拖放即可实现强大的客户端Ajax功能,例如局部页面更新、异步回送、拖放、动画等,非常适合为现有的ASP.NET 2.0应用程序添加少量的Ajax特性,...

    ASP.NET 2.0入门经典(第4版)源码

    ASP.NET 2.0是微软推出的Web应用程序开发框架,它基于.NET Framework,为开发者提供了构建动态网站、Web应用和Web服务的强大工具。本资源“ASP.NET 2.0入门经典(第4版)源码”提供了该书配套的源代码,帮助初学者深入...

    ASP.NET 2.0 入门经典(第4版).rar

    《ASP.NET 2.0 入门经典》将逐步引导您使用 ASP.NET 2.0 创建动态的、数据驱动的、复杂的Web站点。在本章结束时,我们将解释一些基本的想法并介绍一个完整的示例站点。然后将学习怎样使用 Visual Web Developer ...

Global site tag (gtag.js) - Google Analytics