使用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,如需转载请自行联系原作者
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值