首页 | IT新闻 | 硬件 | 操作系统 | 开发 | 网络编程 | 数据库 | 热门框架 | 网络安全 | 组网 | 建站指南 | 网页制作 | 特效 | 实用技巧 | 服务器 | 办公 | QQ | 探索 | 社区

  • 技术部落
  • 部落首页 > 程序开发 > VB > 正文
  • VB6.0用Excel控件简易实现报表设计的功能
      2008-6-22  来源:网络资源  编辑:Jsbulo  热度:

      一、 报表的概念

      典型的报表如下图所示,这张报表包含了报表的基本元素,即页眉、页脚、横表头、竖表头、表头交叉区、单元格。

      这张报表包含了报表的基本元素,即页眉、页脚、横表头、竖表头、表头交叉区、单元格。

      页 眉:位于报表的最上部分。作为报表的描述性信息,概括性的说明报表的名称、表号、批准机关、批准文号等。
      页 脚:位于报表的最下部分,用于说明报表的其它信息,例如:单位负责人、部门负责人、制表人等信息。
      横表头:也叫宾栏,位于报表的横方向的表头,它是统计的约束条件,也可能是描述信息。对于统计表来说横表头是可以分层的,并且上层的条件对它下面各层都起作用。
      竖表头:也叫甲栏,报表竖方向的表头,它在统计表中与横表头起相同的作用,也是统计的约束性条件,也可能是描述性信息。在分层结构中,上层的条件对它下面各层都起作用。
      表头交叉区:在报表的左上角,可以分栏说明报表的横表头和竖表头。
      单元格:报表的主体部分。在统计报表中是其相对应横表头和竖表头的两个条件的统计情况,在查询表中是横表头的查询信息,也可能是简单的计算统计结果。单元格内容在新建报表后是空的,要通过统计查询这一步来填充,在填充后也可以修改。

      二、 Visual BASic中制作报表

      Visual Basic中制作报表,通常是用数据环境设计器(Data Environment DESigner)与数据报表设计器(Data Report Designer),或者使用第三方产品(如非常有名的CRySTal Report)来完成并通过ActiveX控件输出。

      但对于大多数程序员来说,设计报表往往他们费尽心思。然而,我们可以有更简单的方法来满足他们的要求。由于Visual Basic的可扩展性,使用和融入Office2000的特性,包括Excel是相当方便的。Excel可以用作OLE服务器,向外部输出某些属性,方法和事件.Visual Basic可以利用这些功能,实现与Excel的集成。下面,我们来具体阐述一个用VB来创建Excel报表的例子。

      三、 Excel对象

      微软的Excel对象模型包括了128个不同的对象,从矩形,文本框等简单的对象到透视表,图表等复杂的对象.下面我们简单介绍一下其中最重要,也是用得最多的四个对象.

      1)  Application对象
    Application对象处于Excel对象层次结构的顶层,表示Excel自身的运行环境.
      2)  WorkbOOk对象
    WorkBOok对象直接地处于Application对象的下层,表示一个Excel工作薄文件
      3)  Worksheet对象
    Worksheet对象包含于Workbook对象,表示一个Excel工作表.
      4)  Range对象
    Range对象包含于Worksheet对象,表示Excel工作表中的一个或多个单元格.

      四、Access2000的报表解决方案

      1)  在Excel中做一个模板
      在用Visual Basic生成Excel报表之前,应先按照用户的要求在Excel中做好一个模板,包括页眉,页脚,表头等等。
      2)  在VB中创建Excel对象,打开Excel文件
      和其它的第三方控件一样,使用之前必须引用或作为部件导入。要在VB中创建和作用Excel对象,就必须先引用MicrOSoft Excel 9.0 object library。然后我们就可以在VB的编程操作Excel对象了。

      关键代码入下:

    DIm excelFile As String
    excelFile = App.Path &AMp; "\myReport.xls" ’Excel文件名
    ’定义Excel的Application对象,Application对象相当于Excel程序
    Dim xlApp As Excel.Application
    ’定义Excel的Workbook对象,Workbook对象相当于Excel文件
    Dim xlbook As Excel.Workbook
    ’定义Excel的Worksheet对象,Worksheet对象相当于Excel文件中的一个表
    Dim xlsheet As Excel.Worksheet
    ’给Application分配内存空间,将其实例化
    Set xlApp = New Excel.Application
    ’创建Application对象
    Set xlApp = CreateObjECt("Excel.Application")
    ’隐藏被VB打开的Excel程序
    xlApp.Visible = False
    ’打开工作簿,excelFile为一个EXCEL报表文件
    Set xlbook = xlApp.Workbooks.Open(excelFile)
    ’打开Excel工作表
    Set xlsheet = xlbook.Worksheets(1) 

      3)  控制Excel工作表,对其进行编辑
      如果是通过ADO打开了一个记录集,想把记录集中的数据显示在单元格中,关键代码为:
    Do Until rs.EOF
    For i = 0 To rs.Fields.Count - 1
    xlsheet.Cells(j + 1, i + 1) = rs.Fields(i)
    Next
    rs.MoveNext
    j = j + 1
    LOOP

      4)  对Excel进行更多控制,以实现更多的要求
        a)  打印预览      xlsheet.PrintPreview
        b)  直接打印      xlsheet.PrintOut
        c)  隐藏              Excel xlApp.Visible = False
        d)  保存               xlbook.SAve
      5)  退出Excel程序
         xlApp.Quit

      五、小结

      通过在VB中使用ADO(ActiveX Data Object)和Excel提供的OLE对象,我们能够很容易地将数据库中的数据输出到Excel工作表里。用Visual Basic生成的Excel报表可以利用Excel本身的功能来进行打印预览,打印和保存,这样大大减少了程序员的工作量。