您的位置:首页 > 其它

OWC绘图控件研究

2011-11-14 11:07 295 查看
OWC,即Office Web Components,是微软随Office提供的绘图控件,使用它能够绘制绝大部分的图形,但不幸的是OWC的帮助文件并不好用,网上关于OWC的文章也都很简单,稍微深入一点的问题就很难搜到。所以,把自己研究OWC的一些心得写在这里,希望能帮助有需要的朋友,使他们不必再去翻看长长的对象(属性、方法)列表。除此之外,也有一些功能还未实现,希望与大家一起探讨。
注:本文只谈论OWC使用中的技术问题,不涉及OWC引用,授权,版本等方面。文中给出的示例代码基于OWC11 + VS.NET + C#。
Q:OWC有帮助吗?它在哪儿?
A有的。安装Office之后,在C:\Program Files\Common Files\Microsoft Shared\Web Components\11\2052目录下面,有几个*.chm文件,便是,如果你没有这几个文件,尝试把Office完全安装一下试试,或者自定义安装的时候选中相应的选项。但它们是针对如何在Excel中使用,而不是在.Net或Java或Dephi中如何使用的,它只是按字母顺序列出了OWC组件所有的对象、集合、方法、属性、枚举,以及少量的示例代码,查找很不方便。我主要参看了其中的OWCDCH11.CHM文件。
Q:OWC的帮助好难用啊,有没有什么办法能更高效地使用它?
A如果有,那可能是借助Excel罢。先打开Excel的录制宏功能,在Excel里把你要实现的图形样式调出来,再去查看宏代码中用到了哪些OWC的特性。理论上,只要是在Excel里面能实现的,通过程序里面也能实现。我用这种方法解决了好几个问题。什么?你不会录制宏?……请使用Google。
Q:OWC能绘制哪些类型的图形?
AOWC 提供面积图、柱状图、条形图、折线图、平滑曲线图、饼图、圆环图、股价图、散点图、雷达图。其中有些图形包括二维和三维的,有些图形又包含好几种,比如柱状图包括单柱状图,簇形柱状图,一个柱好几个颜色的柱状图等。具体类型请参看OWCDCH11.CHM文件中的枚举: ChartChartTypeEnum。
Q:介绍一下OWC的主要对象、属性、方法罢。
A:请参看下面的示例图。

public void ChartDetail()
5

[b]Q
:OWC提供的颜色好难看,我可以自定义饼状图、柱状图各个部分的颜色么?
A可以。请参看下面对柱状图设置颜色的示例程序,饼状图与此同理。

1 public void ChartColor()
5

Q:饼状图能显示各个部分的值以及所占的百分比么?
A可以。请参看下面的示例程序。

1 public void ChartPersent()
5 {
6 //创建一个图形容器对象
7 OWC11.ChartSpace objCSpace = new OWC11.ChartSpaceClass();
8 //在图形容器中增加一个图形对象
9 OWC11.ChChart objChart = objCSpace.Charts.Add(0);
10 //将图形的类型设置为柱状图的一种
11 objChart.Type = OWC11.ChartChartTypeEnum.chChartTypePie;
12
13 //在图形对象中添加一个系列
14 objChart.SeriesCollection.Add(0);
15 //给定系列的名字
16 objChart.SeriesCollection[0].SetData (OWC11.ChartDimensionsEnum.chDimSeriesNames,
17 + (int)OWC11.ChartSpecialDataSourcesEnum.chDataLiteral, "指标");
18 //给定值
19 objChart.SeriesCollection[0].SetData (OWC11.ChartDimensionsEnum.chDimValues,
20 + (int)OWC11.ChartSpecialDataSourcesEnum.chDataLiteral, "10\t40\t58\t55\t44");
21
22 //增加数据值标签
23 objChart.SeriesCollection[0].DataLabelsCollection.Add();
24 //显示各部分的数值
25 objChart.SeriesCollection[0].DataLabelsCollection[0].HasValue = true;
26 //显示各部分的百分比
27 objChart.SeriesCollection[0].DataLabelsCollection[0].HasPercentage = true;
28
29 //显示数据,创建GIF文件的相对路径.
30 string FileName = DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString() + DateTime.Now.Millisecond.ToString() + ".gif";
31 objCSpace.ExportPicture(@"E:\Projects\Study\OwcImg\ChartPersent.gif", "GIF", 450, 300);
32 Image3.ImageUrl = "Http://localhost/Study/OwcImg/ChartPersent.gif";
33 }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: