国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
用OWC做統(tǒng)計(jì)圖總結(jié)
最近做項(xiàng)目要對(duì)數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析,所以做一些統(tǒng)計(jì)圖,首先想到了微軟的owc,同時(shí)自己把owc的操作封裝了一下。在程序里調(diào)用里方便的多。

先看一下效果圖:

在使用該類前當(dāng)然首先要引用一下owc的dll啦!

公布源碼:

using System;
using System.Data;
using System.Text;

using Microsoft.Office.Interop;

namespace OWCChartTest
{
 /// <summary>
 /// 利用OWC11進(jìn)行作統(tǒng)計(jì)圖的封裝類。
 /// 李天平 2005-8-31
 /// </summary>
 public class OWCChart11
 {

  #region 屬性
  private string _phaysicalimagepath;
  private string _title;
  private string _seriesname;
  private int _picwidth;
  private int _pichight;
  private DataTable _datasource;
  private string strCategory;
  private string strValue;

  /// <summary>
  /// 圖片存放路徑
  /// </summary>
  public string PhaysicalImagePath
  {
   set{_phaysicalimagepath=value;}
   get{return _phaysicalimagepath;}
  }
  public string Title
  {
   set{_title=value;}
   get{return _title;}
  }
  public string SeriesName
  {
   set{_seriesname=value;}
   get{return _seriesname;}
  }

  public int PicWidth
  {
   set{_picwidth=value;}
   get{return _picwidth;}
  }

  public int PicHight
  {
   set{_pichight=value;}
   get{return _pichight;}
  }
  public DataTable DataSource
  {
   set
   {
    _datasource=value;
    strCategory=GetColumnsStr(_datasource);
    strValue=GetValueStr(_datasource);
   }
   get{return _datasource;}
  }

  private string GetColumnsStr(DataTable dt)
  {
   StringBuilder strList=new StringBuilder();
   foreach(DataRow r in dt.Rows)
   {
    strList.Append(r[0].ToString()+'\t');
   }
   return strList.ToString();
  }
  private string GetValueStr(DataTable dt)
  {
   StringBuilder strList=new StringBuilder();
   foreach(DataRow r in dt.Rows)
   {
    strList.Append(r[1].ToString()+'\t');
   }
   return strList.ToString();
  }

  #endregion


  public OWCChart11()
  {
  }
  public OWCChart11(string PhaysicalImagePath,string Title,string SeriesName)
  {
   _phaysicalimagepath=PhaysicalImagePath;
   _title=Title;
   _seriesname=SeriesName;  
  }

 
  /// <summary>
  /// 柱形圖
  /// </summary>
  /// <returns></returns>
  public string CreateColumn()
  { 
   Microsoft.Office.Interop.Owc11.ChartSpace objCSpace = new Microsoft.Office.Interop.Owc11.ChartSpaceClass();//創(chuàng)建ChartSpace對(duì)象來(lái)放置圖表   
   Microsoft.Office.Interop.Owc11.ChChart objChart  = objCSpace.Charts.Add(0);//在ChartSpace對(duì)象中添加圖表,Add方法返回chart對(duì)象
           
   //指定圖表的類型。類型由OWC.ChartChartTypeEnum枚舉值得到//Microsoft.Office.Interop.OWC.ChartChartTypeEnum
   objChart.Type=Microsoft.Office.Interop.Owc11.ChartChartTypeEnum.chChartTypeColumnClustered;
   
   //指定圖表是否需要圖例
   objChart.HasLegend = true;
   
   //標(biāo)題
   objChart.HasTitle = true;
   objChart.Title.Caption= _title;
//   objChart.Title.Font.Bold=true;
//   objChart.Title.Font.Color="blue";
        

   #region 樣式設(shè)置  

   //旋轉(zhuǎn)
//   objChart.Rotation  = 360;//表示指定三維圖表的旋轉(zhuǎn)角度
//   objChart.Inclination = 10;//表示指定三維圖表的視圖斜率。有效范圍為 -90 到 90

   //背景顏色
//   objChart.PlotArea.Interior.Color = "red";

   //底座顏色
//   objChart.PlotArea.Floor.Interior.Color = "green";
//
//   objChart.Overlap = 50;//單個(gè)類別中標(biāo)志之間的重疊量

   #endregion
   
   //x,y軸的圖示說(shuō)明
   objChart.Axes[0].HasTitle = true;
   objChart.Axes[0].Title.Caption = "X : 類別";
   objChart.Axes[1].HasTitle = true;
   objChart.Axes[1].Title.Caption = "Y : 數(shù)量";
   

   //添加一個(gè)series
   Microsoft.Office.Interop.Owc11.ChSeries ThisChSeries = objChart.SeriesCollection.Add(0);


   //給定series的名字
           ThisChSeries.SetData(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimSeriesNames,
      Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(),SeriesName);
           //給定分類
           ThisChSeries.SetData(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimCategories,
      Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(),strCategory);
           //給定值
           ThisChSeries.SetData(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimValues,
      Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(),strValue);

   Microsoft.Office.Interop.Owc11.ChDataLabels dl=objChart.SeriesCollection[0].DataLabelsCollection.Add();   
   dl.HasValue=true;
//   dl.Position=Microsoft.Office.Interop.Owc11.ChartDataLabelPositionEnum.chLabelPositionOutsideEnd;

      
   string filename=DateTime.Now.ToString("yyyyMMddHHmmssff")+".gif";
   string strAbsolutePath = _phaysicalimagepath + "\\"+filename;
   objCSpace.ExportPicture(strAbsolutePath, "GIF", _picwidth, _pichight);//輸出成GIF文件.

   return filename;
   
  }


        /// <summary>
        /// 餅圖
        /// </summary>
        /// <returns></returns>
  public string CreatePie()
  {
   Microsoft.Office.Interop.Owc11.ChartSpace objCSpace = new Microsoft.Office.Interop.Owc11.ChartSpaceClass();//創(chuàng)建ChartSpace對(duì)象來(lái)放置圖表   
   Microsoft.Office.Interop.Owc11.ChChart objChart  = objCSpace.Charts.Add(0);//在ChartSpace對(duì)象中添加圖表,Add方法返回chart對(duì)象
       
      
   //指定圖表的類型
   objChart.Type=Microsoft.Office.Interop.Owc11.ChartChartTypeEnum.chChartTypePie;
   
   //指定圖表是否需要圖例
   objChart.HasLegend = true;
   
   //標(biāo)題
   objChart.HasTitle = true;
   objChart.Title.Caption= _title;
     
         
   //添加一個(gè)series
   Microsoft.Office.Interop.Owc11.ChSeries ThisChSeries = objChart.SeriesCollection.Add(0);

   //給定series的名字
   ThisChSeries.SetData(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimSeriesNames,
    Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(),SeriesName);
   //給定分類
   ThisChSeries.SetData(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimCategories,
    Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(),strCategory);
   //給定值
   ThisChSeries.SetData(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimValues,
    Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(),strValue);
      

   //表示系列或趨勢(shì)線上的單個(gè)數(shù)據(jù)標(biāo)志
   Microsoft.Office.Interop.Owc11.ChDataLabels dl=objChart.SeriesCollection[0].DataLabelsCollection.Add();   
   dl.HasValue=true;
   dl.HasPercentage=true;   
   //圖表繪圖區(qū)的圖例放置在右側(cè)。
//   dl.Position=Microsoft.Office.Interop.Owc11.ChartDataLabelPositionEnum.chLabelPositionRight;
   
   string filename=DateTime.Now.Ticks.ToString()+".gif";   
   string strAbsolutePath = _phaysicalimagepath + "\\"+filename;
   objCSpace.ExportPicture(strAbsolutePath, "GIF", _picwidth, _pichight);//輸出成GIF文件.

   return filename;
  }

  /// <summary>
  /// 條形圖
  /// </summary>
  /// <returns></returns>
  public string CreateBar()
  { 
   Microsoft.Office.Interop.Owc11.ChartSpace objCSpace = new Microsoft.Office.Interop.Owc11.ChartSpaceClass();//創(chuàng)建ChartSpace對(duì)象來(lái)放置圖表   
   Microsoft.Office.Interop.Owc11.ChChart objChart  = objCSpace.Charts.Add(0);//在ChartSpace對(duì)象中添加圖表,Add方法返回chart對(duì)象
           
   //指定圖表的類型。類型由OWC.ChartChartTypeEnum枚舉值得到//Microsoft.Office.Interop.OWC.ChartChartTypeEnum
   objChart.Type=Microsoft.Office.Interop.Owc11.ChartChartTypeEnum.chChartTypeBarClustered;
   
   //指定圖表是否需要圖例
   objChart.HasLegend = true;
   
   //標(biāo)題
   objChart.HasTitle = true;
   objChart.Title.Caption= _title;
//   objChart.Title.Font.Bold=true;
//   objChart.Title.Font.Color="blue";
        

   #region 樣式設(shè)置  

//   //旋轉(zhuǎn)
//   objChart.Rotation  = 360;//表示指定三維圖表的旋轉(zhuǎn)角度
//   objChart.Inclination = 10;//表示指定三維圖表的視圖斜率。有效范圍為 -90 到 90

   //背景顏色
//   objChart.PlotArea.Interior.Color = "red";

   //底座顏色
//   objChart.PlotArea.Floor.Interior.Color = "green";
//
//   objChart.Overlap = 50;//單個(gè)類別中標(biāo)志之間的重疊量

   #endregion
   
   //x,y軸的圖示說(shuō)明
   objChart.Axes[0].HasTitle = true;
   objChart.Axes[0].Title.Caption = "X : 類別";
   objChart.Axes[1].HasTitle = true;
   objChart.Axes[1].Title.Caption = "Y : 數(shù)量";
   

   //添加一個(gè)series
   Microsoft.Office.Interop.Owc11.ChSeries ThisChSeries = objChart.SeriesCollection.Add(0);


   //給定series的名字
   ThisChSeries.SetData(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimSeriesNames,
    Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(),SeriesName);
   //給定分類
   ThisChSeries.SetData(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimCategories,
    Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(),strCategory);
   //給定值
   ThisChSeries.SetData(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimValues,
    Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(),strValue);

   Microsoft.Office.Interop.Owc11.ChDataLabels dl=objChart.SeriesCollection[0].DataLabelsCollection.Add();   
   dl.HasValue=true;
//   dl.Position=Microsoft.Office.Interop.Owc11.ChartDataLabelPositionEnum.chLabelPositionOutsideEnd;

      
   string filename=DateTime.Now.ToString("yyyyMMddHHmmssff")+".gif";
   string strAbsolutePath = _phaysicalimagepath + "\\"+filename;
   objCSpace.ExportPicture(strAbsolutePath, "GIF", _picwidth, _pichight);//輸出成GIF文件.

   return filename;
   
  }

 }
}

在要顯示統(tǒng)計(jì)圖的頁(yè)面代碼直接調(diào)用就可以了

   OWCChart11 chart=new OWCChart11();   
   chart.Title="標(biāo)題";
   chart.SeriesName="圖例";
   string filepath=Server.MapPath(".")+"\\ChartImages";
   chart.PhaysicalImagePath=filepath;
   chart.PicHight=320;
   chart.PicWidth=500;
   chart.DataSource=GetData();//這是你的數(shù)據(jù)源
   
   this.Image1.ImageUrl=filepath+"\\"+chart.CreateBar();//顯示給圖像控件。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
關(guān)于C#操作EXCEL,生成圖表的全面應(yīng)用之二(利用Microsoft.Office.In...
使用Office Web Components (OWC)創(chuàng)建統(tǒng)計(jì)圖
web統(tǒng)計(jì)圖表(asp.net+c#)(轉(zhuǎn))
C#實(shí)現(xiàn)向excel中插入行列,以及設(shè)置單元格合并居中效果
C# 操作 Excel 要點(diǎn)
Visual C#操作Word2007
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服