第19章 Visual Basic与Excel 联合编程 使用Visual Basic编写管理信息系统类的软件时,经常需要将最终结果以没有规律而且复杂的报表的形式显示出来。虽然Visual Basic中自带了处理报表的一些工具,但是用起来很不方便,所以进行报表编程时经常会用到Excel类型库和Excel软件。本章将介绍Visual Basic和Excel联合运用的方法。
19.1 Excel基础 在编写报表程序之前,首先应当用Excel软件制作好报表的模板文件。然后才使用程序向该模板文件输出数据。所以编程人员必须会使用Excel软件才可以。下面简单地介绍一下Excel的相关知识。
19.1.1 Excel简介 Excel的全称是Microsoft Office Excel。它是Microsoft Office(微软办公自动化)套装软件的成员之一,主要用于电子表格的处理。由于其强大的表格处理能力,用户非常喜欢用其制作各种复杂的表格和各类图表。因为,介绍Excel软件已经远远超出了本书的范围,所以在此不再多说。 在进行报表编程时,通常先利用Excel软件制作好复杂表格的样式,然后在程序中使用代码实现向表格输出数据,最后利用Excel软件的打印等功能处理报表。另外Excel超群的计算能力也可以省掉程序设计人员编写很多计算的代码。
19.1.2 创建Excel文件 Excel的文件都以工作薄文件的形式存放在硬盘上。这些工作簿文件的扩展名为“.xls”。每个工作薄文件内包含一个或多个工作表。所以,在制作表格之前首先应当建立工作薄文件。
19.2 使用OLE控件调用Excel 在程序中可以直接使用工具箱中的OLE控件调用Excel文件。这一节将介绍如何使用OLE控件调用Excel文件的方法。
19.2.1 【插入对象】对话框的使用 在程序中调用Excel文件可以使用“插入对象”对话框,也可以使用程序代码实现。下面用一个例题说明使用“插入对象”对话框调用Excel文件的方法。
19.2.2 编写程序在OLE控件中显示文件 1、CreateEmbed方法 2、CreateLink方法 3、SourceDoc属性和Action属性
19.3 针对Excel的程序设计 如果仅仅是显示Excel文件的内容,则使用前面介绍的OLE控件的方法即可。但是,在实际编程时可能要对Excel文件进行各种各样的操作。例如,向Excel文件输出数据、获取Excel文件中的内容、控制打印Excel文件等。从这一节开始,将介绍针对Excel的具体编程方法。
19.3.1 在程序中引用 Excel 类型库 在编写操作Excel文件的程序时,首先应当引用Excel类型库。根据计算机上安装的Excel软件的版本的不同,类型库的版本也不一样。
19.3.2 操作Excel对象 要通过程序代码操作Excel文件时,必须在程序中使用Excel对象。而且要以变量的形式使用Excel对象。经常使用到的Excel对象主要有Application(应用)、Workbook(工作薄)和Worksheet(工作表)等三个对象。其中,应当首先创建Application对象,然后通过Application对象操作Workbook对象,再通过Workbook对象操作Worksheet对象。
19.3.3 向工作表输出数据 上一小节的例题19.3中使用了语句xlSheet.Cells(1, 1) = "abcdefg",向当前工作表输出了字符数据。其中,Cells是工作表的属性,可以用其向工作表输出数据。(具体内容请参照本书)
19.3.4 打印工作表 数据表中有了需要的数据后,接下来最重要的工作可能就是打印了。要打印工作表中的内容,需要用到的是 Worksheets对象的PrintOut方法,该方法的格式如下: Worksheets对象.PrintOut(From, To, Copies, Preview, ActivePrinter, PrintToFile, Collate, PrToFileName)
19.3.5 获取工作表数据 获取工作表数据时,只能一个单元格一个单元格的获取,不能获取一个区域、一整行或一整列的数据。因此获取数据的方法有两种,一种是使用Cells属性,例如,将第3行、第3列中的数据显示到消息框中的语句为: MsgBox xlSheet.Cells(3, 3) 另一种为使用Range属性,例如,将B4单元格的内容显示到消息框中的语句为: MsgBox xlSheet.Range("b4")(具体内容请参照本书)