熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

ASP.NET用OWC繪圖控件畫統計圖表

2013-11-13 09:59:36  來源: .NET編程 

  OWC提供面積圖柱狀圖條形圖折線圖平滑曲線圖餅圖圓環圖股價圖散點圖雷達圖其中有些圖形包括二維和三維的有些圖形又包含好幾種比如柱狀圖包括單柱狀圖簇形柱狀圖一個柱好幾個顏色的柱狀圖等具體類型請參看OWCDCHCHM文件中的枚舉ChartChartTypeEnum

  OWC有幫助文件安裝Office之後在C:\Program Files\Common Files\Microsoft Shared\Web Components\\目錄下面有幾個*chm文件便是如果你沒有這幾個文件嘗試把Office完全安裝一下試試或者自定義安裝的時候選中相應的選項但它們是針對如何在Excel中使用而不是在Net或Java或Dephi中如何使用的它只是按字母順序列出了OWC組件所有的對象集合方法屬性枚舉以及少量的示例代碼查找很不方便我主要參看了其中的OWCDCHCHM文件

  OWC即Office Web Components是微軟隨Office提供的繪圖控件使用它能夠繪制絕大部分的圖形但不幸的是OWC的幫助文件並不好用網上關於OWC的文章也都很簡單稍微深入一點的問題就很難搜到它為在Web中繪制圖形提供了靈活的同時也是最基本的機制

  在一個intranet環境中如果可以假設客戶機上存在特定的浏覽器和一些功能強大的軟件(如IE和Office   /XP/那麼就有能力利用Office   Web組件提供一個交互式圖形開發環境這種模式下客戶端工作站將在整個任務中分擔很大的比重理論上說Excel能做的圖都可以通過OWC畫所以把自己研究OWC的一些心得寫在這裡希望能幫助有需要的朋友使他們不必再去翻看長長的對象(屬性方法)列表

  本文講述如何繪制條形圖折線圖柱形圖面積圖等常見圖形

  效果圖

  What is Office Web Components

  前台代碼

  <%@ Page Language=C# AutoEventWireup=true CodeFile=OWCdrawingaspxcs Inherits=OWCdrawing %>

  <!DOCTYPE html PUBLIC //WC//DTD XHTML Transitional//EN <transitionaldtd>>

  <html xmlns=<; >

  <head runat=server>

  <title>Test</title <%C/title>>

  </head>

  <body>

  <form id=form runat=server>

  <div >

  <table >

  <tr>

  <td colspan= >

  <strong>怎麼樣在ASPNET中使用OWC組件畫圖</strong></td>

  </tr>

  <tr>

  <td colspan= rowspan= >

  <asp:PlaceHolder ID=PlaceHolder runat=server></asp:PlaceHolder>

  </td>

  </tr>

  <tr>

  </tr>

  </table>

  </div>

  </form>

  </body>

  </html>

  手把手教程

  第一步

  右鍵點擊網站根目錄引用如圖所示

  OWC Drawing tutorial

  第二步

  點擊添加引用後彈出一個窗口添加OWC的引用如圖所示

  OWC繪圖控件教程

  點確定

  第三步

  代碼中引用MicrosoftOfficeInteropOwc

  全部代碼

  後台代碼

  using System;

  using SystemData;

  using SystemConfiguration;

  using SystemWeb;

  using SystemWebSecurity;

  using SystemWebUI;

  using SystemWebUIWebControls;

  using SystemWebUIWebControlsWebParts;

  using SystemWebUIHtmlControls;

  using SystemDataSqlClient;   //添加數據操作引用

  using MicrosoftOfficeInteropOwc;//添加Office組件引用

  public partial class OWCdrawing : SystemWebUIPage

  {

  protected void Page_Load(object sender EventArgs e)

  {

  //連接數據庫並獲取特定字符串

  string strSeriesName = 圖例;

  string ConnectString = Server=(local);DataBase=web;Uid=sa;Pwd=sa;

  string Sql = SELECT monthAllcount FROM Chart;

  SqlConnection myConn = new SqlConnection(ConnectString);

  myConnOpen();

  SqlDataAdapter Da = new SqlDataAdapter(Sql myConn);

  DataSet ds = new DataSet();

  DaFill(ds);

  //存放月

  string[] MonNum = new string[];

  //存放數據

  string[] MonCount = new string[];

  //為數組賦值

  for (int i = ; i < dsTables[]RowsCount; i++)

  {

  MonNum[i] = dsTables[]Rows[i][]ToString();

  MonCount[i] = dsTables[]Rows[i][]ToString();

  }

  //為x軸指定特定字符串以便顯示數據

  string strXdata = StringEmpty;

  foreach (string strData in MonNum)

  {

  strXdata += strData + \t;

  }

  string strYdata = StringEmpty;

  //為y軸指定特定的字符串以便與x軸相對應

  foreach (string strValue in MonCount)

  {

  strYdata += strValue + \t;

  }

  //創建ChartSpace對象來放置圖表

  ChartSpace laySpace = new ChartSpaceClass();

  //在ChartSpace對象中添加圖表

  ChChart InsertChart = laySpaceChartsAdd();

  //指定繪制圖表的類型類型可以通過OWCChartChartTypeEnum枚舉值得到

  //InsertChartType = ChartChartTypeEnumchChartTypeLine;//折線圖

  //InsertChartType = ChartChartTypeEnumchChartTypeArea;//面積圖

  //InsertChartType = ChartChartTypeEnumchChartTypeBarClustered;//條形圖

  InsertChartType = ChartChartTypeEnumchChartTypeColumnClustered;//柱形圖

  //指定圖表是否需要圖例標注

  InsertChartHasLegend = false;

  InsertChartHasTitle = true;//為圖表添加標題

  InsertChartTitleCaption = 年清清月兒每個月花銷流水賬;//標題名稱

  //為xy軸添加圖示說明

  InsertChartAxes[]HasTitle = true;

  InsertChartAxes[]TitleCaption = ;//月份

  InsertChartAxes[]HasTitle = true;

  InsertChartAxes[]ScalingSplitMinimum = ;

  InsertChartAxes[]TitleCaption = 數量;

  //添加一個series系列

  InsertChartSeriesCollectionAdd();

  //給定series系列的名字

  InsertChartSeriesCollection[]SetData(ChartDimensionsEnumchDimSeriesNames +(int)ChartSpecialDataSourcesEnumchDataLiteral strSeriesName);

  //給定分類

  InsertChartSeriesCollection[]SetData(ChartDimensionsEnumchDimCategories +(int)ChartSpecialDataSourcesEnumchDataLiteral strXdata);

  //給定值

  InsertChartSeriesCollection[]SetData(ChartDimensionsEnumchDimValues (int)ChartSpecialDataSourcesEnumchDataLiteral strYdata);

  //輸出文件

  string strAbsolutePath = (ServerMapPath()) + \\ShowDatagif <file:///\\showdatagif\>;

  laySpaceExportPicture(strAbsolutePath GIF );

  //創建GIF文件的相對路徑

  string strRelativePath = /ShowDatagif;

  //把圖片添加到placeholder中並在頁面上顯示

  string strImageTag = <IMG SRC= + strRelativePath + />;

  thisPlaceHolderControlsAdd(new LiteralControl(strImageTag));

  }

  }

  數據庫SQL腳本

  USE [web]

  GO

  /****** 對象: Table [dbo][Chart] ******/

  SET ANSI_NULLS ON

  GO

  SET QUOTED_IDENTIFIER ON

  GO

  CREATE TABLE [dbo][Chart](

  [id] [int] IDENTITY() NOT NULL

  [month] [smallint] NULL

  [Allcount] [int] NULL

  ) ON [PRIMARY]

  在數據庫建好表以後要自己手動假想有條數據手動添加最終結果類似下圖

  ASP.NET2.0繪制圖表

  後台程序說明

  最關鍵就是InsertChartType = ChartChartTypeEnumchChartTypeColumnClustered;

  你可以在ChartChartTypeEnum後點出其他方法如圖所示

  ASP.NET2.0統計圖表

  下面列出的是其他類型圖

  折線圖

  OWC繪圖教程

  面積圖

  ASP.NET2.0使用OWC

  條形圖

  ASP.NET

  OWC什麼圖形都可以畫還能畫立體的請大家自己嘗試

  可以參考OWC手冊具體位置

  C:\Program Files\Common Files\Microsoft Shared\Web Components\\\OWCVBACHM


From:http://tw.wingwit.com/Article/program/net/201311/12224.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.