《图表绘制控件mschart的使用方法.doc》由会员分享,可在线阅读,更多相关《图表绘制控件mschart的使用方法.doc(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、VisualBasic中ActiveX控件MSChart的使用方法*依皮提哈尔穆罕买提,那斯尔江土尔逊(新疆大学数学与系统科学学院,乌鲁木齐,)热依曼吐尔逊(新疆大学信息工程学院,乌鲁木齐,)摘 要:本文首先介绍了VisualBasic(简称VB)中MSChart控件的使用方法,然后通过简单的例子详细介绍了利用MSChart控件绘制Excel数据源图表的方法。关键词:VisualBasic;MSChart控件;MicrosoftExcel数据表;图表;数据库The Methods of Using MSChart Control Based on VBIptihar.Muhammat,Nasi
2、rjan.Tursun(Mathematics and Systematic Science Institude of Xinjiang University,Urumqi,Xinjiang,)Reyima.Tursun(Information Science and Engineering Institude of Xinjiang University,Urumqi,Xinjiang,) Abstract: This article discusses how to use the MSChart control and howthat is used in the VB project
3、to drawing Microsoft Excel charts. KeyWords: MSChart Control; Chartdata ;Mirosoft Excel Sheets;Chart;Database 1. 引言Visual Basic中的MSChart控件是一个功能强大的高级图表工具,拥有丰富的图表绘制功能,用它来可以显示二维和三维的棒图、区域图、线形图、饼图等多种常用图表。使用 MSChart 控件可以按照一定的规范将数据以图表的形式绘制出来。可以通过在控件的属性页中设置数据来创建图表,也可以从其它数据源,如 Microsoft Excel和Microsof Access
4、 的电子数据表中检索出要绘制的数据。本文介绍MSChart控件使用方法的同时,主要讨论用MSChart控件绘制Excel数据源图表的实现过程。2. 使用数组和MSChart控件属性绘制图表2.1 添加MSChart控件并调整其属性(1) 先通过“工程”菜单中的“部件”命令,在控件箱里,添加Microsoft Chart Control 6.0 (OLEDB)(简称MSChart)(2) MSChart控件拖动到窗体里,生成初始图表(3) 快捷菜单中的属性命令打开属性页对话框,在该对话狂里可以选择图表类型(在代码中使用ChartType属性),也可以设置图表及其X、Y轴的标题,框架等各种属性2.
5、2 使用数组和 ChartData 属性绘制图表绘制图表最简单的方法就是创建数字型的数组,然后将 ChartData 属性设为该数组。下面介绍简单的单系列图表和复杂的多系列图表的创建方法:创建单系列图表以一年中商品的价格为例图表中的一个“系列”就是一个相关的数据点集,对于Excel数据表来说,单系列相当于一个单列数据集。下面的代码将产生简单的单系列图表,这段代码可以粘贴到一个Form的 Load 事件中,该Form包含名为“MSChart1”的MSChart 控件。Dim arrPrices(1 to 10)Dim i As IntegerFor i = 1 to 10 arrPrices(i
6、)= i * 2Next iMSChart1.ChartData = arrPrices 图1 图2创建复杂的多系列图表创建复杂的多系列图表,需创建多维数组。创建多维数组时,可以将第一个系列赋值为字符串,当数组赋值给 ChartData 属性时,字符串将会成为行的标签。图表中系列的数目是由第二个维数决定的。 在本例中,图表将有两个系列,每个系列有五个数据点。如下例所示:Dim arrValues(1 to 5, 1 to 3)Dim i as IntegerFor i = 1 to 5 arrValues(i, 1) = Label & i Labels arrValues(i, 2) = 0
7、 + i Series 1 values. arrValues(i, 3) = 2 * i Series 2 values.Next iMsChart1.ChartData = arrValues上面的代码产生的多系列图表(如图2)。正如所看见的那样,使用 ChartData 属性创建图表的方法快捷而且简便。但是,使用数组的问题是要将数据取到数组中。这类数据的大多数用户可能更想使用某种电子表格,例如 Microsoft Excel,或用某种数据库,如 Microsoft Access,来存贮和检索数据。为此,下面重点介绍使用数据源中的数据创建图表的方法。3使用数据源中的数据绘制图表 以下以Ex
8、cel数据源图表为例,介绍使用数据源中的数据来绘制图表的具体方法:3.1打开Excel数据源(1) 通过“工程”菜单中的“部件”命令,在控件箱里,添加Microsoft Chart Control6.0 (OLEDB) (即MSChart控件),并在窗体上添加MSChart控件(2) 用“工程”菜单中的“引用”命令,将程序连接到“Mirosoft Excel 9.0 Object Library”(Excel对象库)(3) 用以下代码来,打开名称为test.XLS的Excel数据库,这些代码可以添加到纯代码模块(Module模块)或窗体模块的form_Load()事件过程之中。On Error
9、 Resume Next Set xlapp = GetObject(, Excel.Application) 打开正在运行的 Excel副本If Err.Number 0 Then 如打开失误Set xlapp = CreateObject(Excel.Application) 创建一个excel副本ExcelWasNotRunning = TrueEnd IfErr.Clear 打开当前目录下的Excel工作簿TEST.XLSSet xlbook = xlapp.Workbooks.Open(App.Path & test.xls)以A1作为当前区域的开头,读取该区域的地址Set xlrn
10、g = xlbook.Worksheets(1).Range(A1).CurrentRegion3.2 获取Excel数据用户可以用一个Click(单击某一个命令按钮或窗体)事件过程来实现对Excel数据的获取。这个过程仅仅用于组织数组,然后在指定的范围内,通过数组的方式获取数据。该过程的变量类型,要符合Excel表中的字段类型(即每列的数据类型)。假设我们调用的Excel数据源是以下数据表:则可以通过定义一个数组thisarray来读取以上数据:Privatesub Start_click()“开始”命令按钮的单击事件Dim thisarray(1 To 3, 1 To 4)Dim i As
11、 IntegerDim course1, course2, course3 As SingleintRows = 3For i = 1 To intRows获得行标题(三个学生的名称)thisarray(i, 1) = CStr(xlrng.Range(A & i + 1).Value)获得其它三列数值字段thisarray(i, 1) = CStr(xlrng.Range(A & i + 1).Value)course1 = xlrng.Range(B & i + 1).Value 读取课程1的成绩course2 = xlrng.Range(C & i + 1).Value 读取课程2的成绩
12、course3 = xlrng.Range(D & i + 1).Value 读取课程3的成绩将三门课程的平均值赋给数组thisarraythisarray(i, 2) = Average(course1, course2, course3) 调用求平均值函数 Next iMSChart1.ChartData = thisarray End sub其中,MSChart1是该程序中图表控件的名称,当i=1到3时,thisarray(i,1)所代表的数组元素值显示图表中的行标题(即学生姓名),thisarray(i,2)所代表的数组元素值显示学生的平均成绩。3.3 创建图表MSChart控件的Ch
13、artData属性用来创建图表。以上过程中的最后一行语句,就是ChartData属性的一种典型的用法,即如下: MSChart1.ChartData = thisarrayChartData属性根据数组thisarray的内容,创建一个反映学生平均成绩的图表(如图3)。图33.4 关闭工作表结束程序当启动时,如果 Microsoft Excel 副本没有被运行,使用应用程序属性的 Quit 方法将它关闭。注意当试图退出 Microsoft Excel 时,标题栏闪烁并且显示一个询问是否希望保存所有加载的文件的信息。 在应用程序终结前激活此过程,清除所有全局变量,其代码如下:Public Sub
14、 End_up()xlbook.Close 关闭工作表Set xlsht = NothingSet xlrng = NothingIf ExcelWasNotRunning = True ThenxlApp.Quit End IfSet xlapp = NothingEnd Sub4结论以上介绍了MSChart控件的功能和使用方法,并在此基础上着重讨论了利用Mschart控件来实现绘制Excel图表的方法,并给出了相应的VB代码。该方法同样使用于以Access等其他类型数据库为数据对象的图表。读者可以用这些代码来组成一个实用程序,并且通过进一步地研究,可以将它使用到有关数据分析和预测未来的其它一些领域。参考文献:1VisualBasic使用教程,郑阿奇主编,电子工业出版社,2000。2VB问答式教程,庞一鸣编著,清华大学出版社,2002。