ASP.NET如何用OWC绘图控件画统计图表(一)

原创|其它|编辑:郝浩|2009-11-12 10:31:12.000|阅读 1864 次

概述:OWC提供面积图、柱状图、条形图、折线图、平滑曲线图、饼图、圆环图、股价图、散点图、雷达图。其中有些图形包括二维和三维的,有些图形又包含好几种,比如柱状图包括单柱状图,簇形柱状图,一个柱好几个颜色的柱状图等。具体类型请参看OWCDCH11.CHM文件中的枚举:ChartChartTypeEnum。

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>

  OWC提供面积图、柱状图、条形图、折线图、平滑曲线图、饼图、圆环图、股价图、散点图、雷达图。其中有些图形包括二维和三维的,有些图形又包含好几种,比如柱状图包括单柱状图,簇形柱状图,一个柱好几个颜色的柱状图等。具体类型请参看OWCDCH11.CHM文件中的枚举:ChartChartTypeEnum。

  OWC有帮助文件,安装Office之后,在C:\Program Files\Common Files\Microsoft Shared\Web Components\11\2052目录下面,有几个*.chm文件,便是,如果你没有这几个文件,尝试把Office完全安装一下试试,或者自定义安装的时候选中相应的选项。但它们是针对如何在Excel中使用,而不是在.Net或Java或Dephi中如何使用的,它只是按字母顺序列出了OWC组件所有的对象、集合、方法、属性、枚举,以及少量的示例代码,查找很不方便。我主要参看了其中的OWCDCH11.CHM文件。

  OWC,即Office Web Components,是微软随Office提供的绘图控件,使用它能够绘制绝大部分的图形,但不幸的是OWC的帮助文件并不好用,网上关于OWC的文章也都很简单,稍微深入一点的问题就很难搜到。它为在Web中绘制图形提供了灵活的同时也是最基本的机制。

  在一个intranet环境中,如果可以假设客户机上存在特定的浏览器和一些功能强大的软件(如IE6和Office 2000/XP/2003),那么就有能力利用Office Web组件提供一个交互式图形开发环境。这种模式下,客户端工作站将在整个任务中分担很大的比重。理论上说Excel能做的图都可以通过OWC画。所以,把自己研究OWC的一些心得写在这里,希望能帮助有需要的朋友,使他们不必再去翻看长长的对象(属性、方法)列表。

  本文讲述如何绘制条形图,折线图,柱形图,面积图等常见图形。

  效果图:

  前台代码:

  <%@ 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>Test</title <http://blog.csdn.net/21aspnet%3C/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>

  手把手教程:

  第一步:

  右键点击网站根目录引用。如图所示:

  第二步:

  点击“添加引用”后弹出一个窗口,添加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;//柱形图


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com

文章转载自:网络转载

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP