在ASP.NET中使用Office Web Components (OWC)创建统计图

 <!--StartFragment--><%@ Page Language="vb" AutoEventWireup="false" Codebehind="OWC.aspx.vb" Inherits="aspxWeb.OWC"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
  <HEAD>
    <title>WebForm1</title>
    <meta name="GENERATOR" Content="Microsoft Visual Studio 7.0">
    <meta name="CODE_LANGUAGE" Content="C#">
    <meta name="vs_defaultClientScript" content="JavaScript">
    <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
  </HEAD>
  <body MS_POSITIONING="GridLayout">
    <form id="Form1" method="post" runat="server">
      <asp:placeholder id="ChartHolder" runat="server"></asp:placeholder>
    </form>
  </body>
</HTML>

ublic class owc: System.Web.UI.Page { protected System.Web.UI.WebControls.PlaceHolder ChartHolder; private void Page_Load(object sender, System.EventArgs e) { // 在此处放置用户代码以初始化页面 //创建ChartSpace对象来放置图表 OWC.ChartSpace objCSpace = new OWC.ChartSpaceClass (); //在ChartSpace对象中添加图表,Add方法返回chart对象 OWC.WCChart objChart = objCSpace.Charts.Add (0); //指定图表的类型。类型由OWC.ChartChartTypeEnum枚举值得到 objChart.Type = OWC.ChartChartTypeEnum.chChartTypeColumnClustered; //指定图表是否需要图例 objChart.HasLegend = true; //给定标题 objChart.HasTitle = true; objChart.Title.Caption= "上半年分布图"; //给定x,y轴的图示说明 objChart.Axes[0].HasTitle = true; objChart.Axes[0].Title.Caption = "Y : 数量"; objChart.Axes[1].HasTitle = true; objChart.Axes[1].Title.Caption = "X : 月份"; //计算数据 /*categories 和 values 可以用tab分割的字符串来表示*/ string strSeriesName = "图例 1"; string strCategory = "1" + '/t' + "2" + '/t' + "3" + '/t'+"4" + '/t' + "5" + '/t' + "6" + '/t'; string strValue = "9" + '/t' + "8" + '/t' + "4" + '/t'+"10" + '/t' + "12" + '/t' + "6" + '/t'; //添加一个series objChart.SeriesCollection.Add(0); //给定series的名字 objChart.SeriesCollection[0].SetData (OWC.ChartDimensionsEnum.chDimSeriesNames, + (int)OWC.ChartSpecialDataSourcesEnum.chDataLiteral, strSeriesName); //给定分类 objChart.SeriesCollection[0].SetData (OWC.ChartDimensionsEnum.chDimCategories, + (int)OWC.ChartSpecialDataSourcesEnum.chDataLiteral, strCategory); //给定值 objChart.SeriesCollection[0].SetData (OWC.ChartDimensionsEnum.chDimValues, (int)OWC.ChartSpecialDataSourcesEnum.chDataLiteral, strValue); //输出成GIF文件. string strAbsolutePath = (Server.MapPath(".")) + "//i//test.gif"; objCSpace.ExportPicture(strAbsolutePath, "GIF", 600, 350); //创建GIF文件的相对路径. string strRelativePath = "./i/test.gif"; //把图片添加到placeholder. string strImageTag = "<IMG SRC='" + strRelativePath + "'/>"; ChartHolder.Controls.Add(new LiteralControl(strImageTag)); } #region Web Form Designer generated code override protected void OnInit(EventArgs e) { // // CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。 // InitializeComponent(); base.OnInit(e); } /// <summary> /// 设计器支持所需的方法 - 不要使用代码编辑器修改 /// 此方法的内容。 /// </summary> private void InitializeComponent() { this.Load += new System.EventHandler(this.Page_Load); } #endregion }

如果用ADO.NET的DataSet对象,可以生成以TAB分割的字符串:

strValue += (nodes.Item(j).ChildNodes.Item(0).InnerText + '/t'); strCategory += (nodes.Item(j).ChildNodes.Item(1).InnerText + '/t');

引用OWC11的代码

using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Drawing; using System.Web; using System.Web.SessionState; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; using Microsoft.Office.Interop.Owc11; namespace eMeng.Exam { /// <summary> /// OWC 的摘要说明。 /// </summary> public class OWCExam : System.Web.UI.Page { protected System.Web.UI.WebControls.PlaceHolder ChartHolder; private void Page_Load(object sender, System.EventArgs e) { //创建ChartSpace对象来放置图表 Microsoft.Office.Interop.Owc11.ChartSpace objCSpace = new Microsoft.Office.Interop.Owc11.ChartSpaceClass (); //在ChartSpace对象中添加图表,Add方法返回chart对象 Microsoft.Office.Interop.Owc11.ChChart objChart = objCSpace.Charts.Add (0); //指定图表的类型。类型由OWC.ChartChartTypeEnum枚举值得到 objChart.Type = Microsoft.Office.Interop.Owc11.ChartChartTypeEnum.chChartTypeColumnClustered; //指定图表是否需要图例 objChart.HasLegend = true; //给定标题 objChart.HasTitle = true; objChart.Title.Caption= "上半年分布图"; //给定x,y轴的图示说明 objChart.Axes[0].HasTitle = true; objChart.Axes[0].Title.Caption = "Y : 数量"; objChart.Axes[1].HasTitle = true; objChart.Axes[1].Scaling.SplitMinimum = 200; objChart.Axes[1].Title.Caption = "X : 月份"; //计算数据 /*categories 和 values 可以用tab分割的字符串来表示*/ string strSeriesName = "图例 1"; string strCategory = "1" + "/t" + "2" + '/t' + "3" + '/t'+"4" + '/t' + "5" + '/t' + "6" + '/t'; string strValue = "9" + "/t" + "8" + '/t' + "4" + '/t'+"10" + '/t' + "12" + '/t' + "6" + '/t'; //添加一个series objChart.SeriesCollection.Add(0); //给定series的名字 objChart.SeriesCollection[0].SetData (Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimSeriesNames, + (int)Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral, strSeriesName); //给定分类 objChart.SeriesCollection[0].SetData (Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimCategories, + (int)Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral, strCategory); //给定值 objChart.SeriesCollection[0].SetData (Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimValues, (int)Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral, strValue); //输出成GIF文件. string strAbsolutePath = (Server.MapPath(".")) + "//test.gif"; objCSpace.ExportPicture(strAbsolutePath, "GIF", 600, 350); //创建GIF文件的相对路径. string strRelativePath = "./test.gif"; //把图片添加到placeholder. string strImageTag = "<IMG SRC='" + strRelativePath + "'/>"; ChartHolder.Controls.Add(new LiteralControl(strImageTag)); } #region Web 窗体设计器生成的代码 override protected void OnInit(EventArgs e) { // // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。 // InitializeComponent(); base.OnInit(e); } /// <summary> /// 设计器支持所需的方法 - 不要使用代码编辑器修改 /// 此方法的内容。 /// </summary> private void InitializeComponent() { this.Load += new System.EventHandler(this.Page_Load); } #endregion } }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值