CharlesChen's Technical Space

简单实用是我一直在软件开发追求的目标(I Focus on. Net technology, to make the greatest efforts to enjoy the best of life.)
Not the best, only better
  博客园  :: 首页  :: 联系 :: 订阅 订阅  :: 管理

OWC生成统计报表(柱形图)

Posted on 2009-01-13 23:14  Charles Chen  阅读(2799)  评论(4编辑  收藏  举报

     项目中牵涉到数据报表统计,客户需要生成柱形图进行统计。首先想到用OWC(Office Web Components),owc11控件是office图表控件(owc10是officeXP中的组件,owc11为office2003的组件,组件路径在:C:\Program Files\Common Files\Microsoft Shared\Web Components\11\owc11,帮助文件的路径为C:\Program Files\Common Files\Microsoft Shared\Web Components\11\2052),调用它可以生成三维图、柱状图、饼状图、趋势图和误差图等。)

要是想OWC生成柱形图表,首先必须引用OWC11才能使用其中的方法。下面是我通过参考文档实现的效果:(柱形图效果)

 

 

下面是参考代码:(仅供参考)

 ChartSpace owcChartSpace = new ChartSpace();//创建ChartSpace对象来放置图表   

            ChChart chart 
= owcChartSpace.Charts.Add(0);//在ChartSpace对象中添加图表,Add方法返回chart对象

            chart.Type 
= ChartChartTypeEnum.chChartTypeColumnClustered;//指定图表的类型。类型由OWC.ChartChartTypeEnum枚举值得到//Microsoft.Office.Interop.OWC.ChartChartTypeEnum

            
//指定图表是否需要图例
            chart.HasLegend = true;

            
//标题
            chart.HasTitle = true;
            chart.Title.Caption 
= "祝朋友们心想事成";

            
//x,y轴的图示说明
            chart.Axes[0].HasTitle = true;
            chart.Axes[
0].Title.Caption = "X:" + "月份";
            chart.Axes[
1].HasTitle = true;
            chart.Axes[
1].Title.Caption = "Y:" + "收入";


            chart.SeriesCollection.Add(
0); //添加一个series

            
//给定值
            chart.SeriesCollection[0].SetData(ChartDimensionsEnum.chDimValues,
               
+(int)ChartSpecialDataSourcesEnum.chDataLiteral, "3000\t4000\t5000\t6000");

            
//给定分类
            chart.SeriesCollection[0].SetData(ChartDimensionsEnum.chDimCategories,
              
+(int)ChartSpecialDataSourcesEnum.chDataLiteral, "3月份\t6月份\t9月份\t12月份");

            
//自定义柱形颜色
            string[] colorString ="red""blue""yellow""green" };
            
for (int i = 0; i < 4; i++)
            {
                chart.SeriesCollection[
0].Points[i].Interior.SetSolid(colorString[i]);
            }

            
//表示柱形图上的单个数据标志
            Microsoft.Office.Interop.Owc11.ChDataLabels dl = chart.SeriesCollection[0].DataLabelsCollection.Add();
            dl.HasValue 
= true;

            
//保存为gif图片
            string filename = DateTime.Now.ToString("yyyyMMddHHmmssff"+ ".gif";

            owcChartSpace.ExportPicture(
@"D:\" + filename, "GIF"500320);

 

如果需要生成其他图表请参考其他OWC相关资料

OWC绘图控件研究http://www.cnblogs.com/Athos/archive/2007/02/09/645930.html

.net调用OWC生成报表统计图总结http://www.cnblogs.com/dreamof/archive/2008/06/19/1226227.html