使用OWC生成数据分析图表

简介:

复制代码
首先在VS2005----》网站----》添加引用----》com----->microsoft office web components
private   void  getchart(DataTable dt, int rows)
    {
        
try
        {
            
int  count  =  dt.Rows.Count;
if (count < 3)
            {
                divchart.InnerHtml = "<span style='color:red'>数据少于3条,无法生成图表!</span>";
return;
            }
            
// 存放月
             string [] MonNum  =   new   string [count];
            
// 存放数据
             string [] MonCount  =   new   string [count];
            
string [] MonCount1  =   new   string [count];
            
// 为数组赋值
             for  ( int  i  =   0 ; i  <  count; i ++ )
            {
                MonNum[i] 
=  dt.Rows[i][ 3 ].ToString();
                MonCount[i] 
=  dt.Rows[i][ 1 ].ToString();
                MonCount1[i] 
=  dt.Rows[i][ 2 ].ToString();
            }
            
string  strXdata  =  String.Empty;
            
foreach  ( string  strData  in  MonNum)
            {
                strXdata 
+=  strData  +   " \t " ;
            }
            
string  strYdata  =  String.Empty;
            
foreach  ( string  strValue  in  MonCount)
            {
                strYdata 
+=  strValue  +   " \t " ;
            }

            
string  strYdata1  =  String.Empty;
            
foreach  ( string  strValue  in  MonCount1)
            {
                strYdata1 
+=  strValue  +   " \t " ;
            }

            ChartSpace laySpace 
=   new  ChartSpaceClass();


            ChChart InsertChart 
=  laySpace.Charts.Add( 0 );


            InsertChart.Type 
=  ChartChartTypeEnum.chChartTypeBarClustered;

            
string  type  =   " 1 " ;
            
if  (Request.QueryString[ " type " !=   null )
            {
                type 
=  Request.QueryString[ " type " ].ToString();
            }

            InsertChart.HasLegend 
=   true ;
            InsertChart.HasTitle 
=   true ;
            InsertChart.Title.Caption 
=   " 销售记录 " ;

            InsertChart.Axes[
0 ].HasTitle  =   true ;
            InsertChart.Axes[
0 ].Title.Caption  =   string .Format( " 日期({0}) " , type  ==   " 1 "   ?   " "  :  " " );

            

            
// 刻度格式 
            
            InsertChart.Axes[
1 ].HasTitle  =   true ;
            InsertChart.Axes[
1 ].Scaling.SplitMinimum  =   200 ;
            InsertChart.Axes[
1 ].Title.Caption  =   " 金额(元) " ;

            InsertChart.SeriesCollection.Add(
0 );
            InsertChart.SeriesCollection[
0 ].DataLabelsCollection.Add();
            InsertChart.SeriesCollection[
0 ].DataLabelsCollection[ 0 ].HasValue  =   true ;
            InsertChart.SeriesCollection[
0 ].SetData(ChartDimensionsEnum.chDimSeriesNames,  + ( int )ChartSpecialDataSourcesEnum.chDataLiteral,  " 销售总额 " );
            InsertChart.SeriesCollection[
0 ].SetData(ChartDimensionsEnum.chDimCategories,  + ( int )ChartSpecialDataSourcesEnum.chDataLiteral, strXdata);
            InsertChart.SeriesCollection[
0 ].SetData(ChartDimensionsEnum.chDimValues, ( int )ChartSpecialDataSourcesEnum.chDataLiteral, strYdata);

            InsertChart.Axes[
0 ].GroupingType  =  OWC10.ChartAxisGroupingEnum.chAxisGroupingManual;
            InsertChart.Axes[
0 ].GroupingUnitType  =  ChartAxisUnitTypeEnum.chAxisUnitMonth;
            InsertChart.Axes[
0 ].NumberFormat  =   " yyyy-MM " ;
            InsertChart.Axes[
0 ].GroupingUnit  =   1 ;


            InsertChart.SeriesCollection.Add(
1 );
            InsertChart.SeriesCollection[
1 ].DataLabelsCollection.Add();
            InsertChart.SeriesCollection[
1 ].DataLabelsCollection[ 0 ].HasValue  =   true ;
            InsertChart.SeriesCollection[
1 ].SetData(ChartDimensionsEnum.chDimSeriesNames,  + ( int )ChartSpecialDataSourcesEnum.chDataLiteral,  " 已消费 " );
            InsertChart.SeriesCollection[
1 ].SetData(ChartDimensionsEnum.chDimCategories,  + ( int )ChartSpecialDataSourcesEnum.chDataLiteral, strXdata);
            InsertChart.SeriesCollection[
1 ].SetData(ChartDimensionsEnum.chDimValues, ( int )ChartSpecialDataSourcesEnum.chDataLiteral, strYdata1);

            
string  fn  =  DateTime.Now.ToString( " yyyyMMddHHmmss " +   " .gif " ;
            
string  strAbsolutePath  =  (Server.MapPath(Config.Temp_Path))  +  fn;
            int height = rows * (rows > 10 ? 30 : 50);//数据间宽度
            laySpace.ExportPicture(strAbsolutePath, "GIF", 660, height);
      
         divchart.InnerHtml  =   " <img src='/upload/temp/ "   +  fn  +   " '> " ;
        }
        
catch  (Exception ex)
        {
            Console.Write(ex.Message);
        }
    }



本文转自94cool博客园博客,原文链接:http://www.cnblogs.com/94cool/archive/2011/05/11/2043241.html,如需转载请自行联系原作者
相关文章
|
6月前
|
机器学习/深度学习 数据可视化 算法
数据分析和机器学习的11个高级可视化图表介绍
可视化是一种强大的工具,用于以直观和可理解的方式传达复杂的数据模式和关系。它们在数据分析中发挥着至关重要的作用,提供了通常难以从原始数据或传统数字表示中辨别出来的见解。
113 0
|
2月前
|
数据挖掘 数据库
GEE——降水数据分析(半天)图表分析含(IANA(IANA Time Zone Database) 时区名称的定义)
GEE——降水数据分析(半天)图表分析含(IANA(IANA Time Zone Database) 时区名称的定义)
29 1
|
3月前
|
Python
Python 的科学计算和数据分析: 如何使用 Matplotlib 绘制图表?
Python 的科学计算和数据分析: 如何使用 Matplotlib 绘制图表?
|
4月前
|
数据可视化 数据挖掘 Linux
数据分析入门系列教程-常用图表
数据分析入门系列教程-常用图表
|
4月前
|
数据可视化 JavaScript 前端开发
【数据分析与可视化】pyecharts可视化图表讲解及实战(超详细 附源码)
【数据分析与可视化】pyecharts可视化图表讲解及实战(超详细 附源码)
112 0
|
4月前
|
数据可视化 前端开发 数据挖掘
Python 教程之数据分析(3)—— Python中不同图表的数据可视化
Python 教程之数据分析(3)—— Python中不同图表的数据可视化
68 0
|
6月前
|
机器学习/深度学习 数据可视化 算法
数据分析和机器学习的11个高级可视化图表介绍
数据分析和机器学习的11个高级可视化图表介绍
|
8月前
|
数据可视化 数据挖掘 Python
python 数据分析 Matplotlib常用图表(下)
python 数据分析 Matplotlib常用图表
120 0
|
8月前
|
数据可视化 数据挖掘 Python
python 数据分析 Matplotlib常用图表(中)
python 数据分析 Matplotlib常用图表
|
8月前
|
数据可视化 数据挖掘 Python
python 数据分析 Matplotlib常用图表(上)
python 数据分析 Matplotlib常用图表

热门文章

最新文章