OWC123

(说明:年前为准备一个有关图表的项目写在一个临时博客上,现转移到这里)

继续研究图表,看来看去,感觉还是owc比较合适,更底层点儿的东西操作起来也会更灵活一些,更先进一些的控件可能在使用的时候会方便不少,但应对一些特殊的要求往往会更让人伤脑筋。所以,还是用owc算了。

一、owc的位置

该控件是office提供,可在以下位置找到:%system%/Program Files/Common Files/Microsoft Shared/Web Components/11,相对office2003 ,其中有个owc11.dll的就是,当然,这是一个com组件,在部署到服务器时会麻烦点,应该需要在服务器上安装。记得我在浏览这个文件夹时,不小心把web componets移动了一个位置,结果就造成程序的错误。在其中的2052文件夹下,有该控件的帮助文档,可以做为参考。

二、基本用法

首先当然是引用该组件。代码页顶部需要申明using OWC= Microsoft.Office.Interop.Owc11;OWC这个别名可以方便程序的使用。在使用时,先创建一个ChartSpace对象,然后在其中添加一个CHChart对象,如下:

OWC.ChartSpace objCSpace = new OWC.ChartSpaceClass();

OWC.ChChart objChart = objCSpace.Charts.Add(0);

下一步就是往CHChart图表对象中添加Series系列对象了。所谓Seires就是具体的图形了,如柱形图、饼图之类的。CHChart对象有个SeriesCollection属性,是CHChart对象中所有系列的集合,最多可包含256个系列。SeriesCollection有个 Add方法,可用来往集合中添加Series系列。添加了系列后,可以用其SetData方法为该系列指定名称、属性、值了。例如:

        //添加一个series
        objChart.SeriesCollection.Add(0);
        objChart.SeriesCollection[0].Type = OWC.ChartChartTypeEnum.chChartTypeColumnClustered;
        //给定series的名字
        objChart.SeriesCollection[0].SetData(OWC.ChartDimensionsEnum.chDimSeriesNames,
            +(int)OWC.ChartSpecialDataSourcesEnum.chDataLiteral, strSeriesName);

        //给定属性
        objChart.SeriesCollection[0].SetData(OWC.ChartDimensionsEnum.chDimCategories,
            +(int)OWC.ChartSpecialDataSourcesEnum.chDataLiteral, strCategory);

        //给定objChart[0]的值
        OWC.ChSeries sDispDppm = objChart.SeriesCollection[0];
        sDispDppm.SetData
            (OWC.ChartDimensionsEnum.chDimValues,
            (int)OWC.ChartSpecialDataSourcesEnum.chDataLiteral, strValue);

三、用Ungroup方法生成双轴图表

CHSeries对象有个Ungroup方法,唯一的参数是逻辑型的,指示该系列是否采用与前一层次不同的刻度。默认为false,而 Ungroup(true)则会采用不同的刻度。当然,你需要为图表对象增加一个刻度,并设置相应的刻度,CHChart对象下有个Axes属性,用来返回图表的ChAxes轴集合,其有个Add方法,用来添加新的轴ChAxis对象。例如:

OWC.ChSeries sDispLar = objChart.SeriesCollection.Add(0);
        sDispLar.Ungroup(true);
        OWC.ChAxis MyAxis = objChart.Axes.Add(sDispLar.get_Scalings(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimValues));
        MyAxis.Position = OWC.ChartAxisPositionEnum.chAxisPositionRight;
        MyAxis.HasMinorGridlines = false;
        MyAxis.NumberFormat = "0.00%";
        MyAxis.HasTitle = true;
        MyAxis.Title.Caption = "报废率(%)";

该系列名称、属性、值的设置方法和前面一样。

更多用法和技巧待日后使用中再做总结。

你可能感兴趣的:(Web,服务器,Office,System,文档,图形)