您现在的位置: 天极网 > 开发频道 > VB与Excel2000实现复杂报表打印
全文

VB与Excel2000实现复杂报表打印

2004-06-11 10:49作者:胡瑞池出处:论坛责任编辑:方舟

  数据库管理系统的开发人员经常被编制复杂的报表所困扰,VB的水晶报表可以设计简单的报表,但是设计出的报表缺乏灵活性。我利用VB操作EXCEL2000来生成复杂的报表。



  用VB创建外部EXCEL对象

  Microsoft Office应用程序提供了一个顶层Application 对象。下面语句显示了对Microsoft Excel的Application 对象的引用,用这些变量来访问在EXCEL应用程序中的从属对象、以及这些对象的属性和方法。:

Dim xlApp As Excel.Application
Set xlApp = New Excel.Application
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = False
Set xlBook = xlApp.Workbooks.Open(strDestination)
Set xlSheet = xlBook.Worksheets(1)

  用EXCEL 2000设计报表的模版文件

  EXCEL 2000是一个非常优秀的创建报表的工具。它提供的单元格任意合并、拆分功能基本上能够满足设计复杂报表的要求。它对任意一个单元格的格式随意控制,因此它为设计复杂报表提供了强大的支持。

  根据用户提供的报表,我们可以很快在EXCEL里生成模版文件。模版文件只是为了满足用户多方面的需求而设计的。并且随着时间和实际情况的变化,表格格式有可能需要改变,我们设计一个模版文件可以“以不变应万变”了。在程序里我们不要对模版文件进行操作,我们只需要对模版文件的一个拷贝进行操作就行。程序代码如下:

Dim strSource, strDestination As String
strSource = App.Path & "\Excels\dangan.xls" 
strDestination = App.Path & "\Excels\Temp.xls" 
FileCopy strSource, strDestination
Set mobjExcel = New Excel.Application
Set mobjExcel = CreateObject("Excel.Application")
mobjExcel.Visible = False
Set mobjworkbook = mobjExcel.Workbooks.Open(strDestination)
Set xlsheet = mobjworkbook.Worksheets(1)
If Not opendatasource() Then
 MsgBox "不能打开数据源!", , "提示"
 Unload Me
 Exit Sub
End If
Private Function opendatasource()
 ssql="select shgt_dah,shgt_yth,shgt_ajtm,shgt_chtrq,
 shgt_shjdw,shgt_wzysh,shgt_tzzhsh,shgt_gdrq,shgt_bz from shgtajb"
 OpenResultset ssql, mrdors
 opendatasource = True
 Exit Function
End Function

  生成工作表内容

  有了上述两步工作的铺垫,我们只要根据模板的格式给各单元格赋值如:

Do while Not mrdors.Eof
 i=4
 For j=0 to mrdors.rdocolumns.count-2
  MobjExcel.Activesheet.cells(i,j+1).value=mrdors.rdocolumns(j).Value
 Next
 Mrdors.movenext
Loop

  打印报表

  生成了工作表后,就可以对EXCEL发出打印指令了。在执行打印操作之前应该对EXCEL临时文件执行一次保存操作,以免在退出应用程序后EXCEL还提示用户是否保存已修改的文件。如下语句:

xlBook.Save 
xlSheet.PrintOut 
xlApp.Quit 

软件资讯·软件下载尽在天极软件

相关搜索:
关注此文读者还看过
热门关注
特别推荐
网友关注
软件下载
娱乐下载
驱动下载
文章排行
本周
本月
最近更新
关于我们|About us|网站律师|天极服务|电子杂志|RSS订阅|加入我们|网站地图
TMG
Copyright (C) 1999-2009 Chinabyte.com, All Rights Reserved 版权所有 天极网络
商务联系、网站内容、合作建议:010-82657868
版权声明 在线提交意见反馈 渝ICP证B2-20030003号
经营性网站备案信息 网警备案 中国网站排名
天极传媒:天极网|比特网|IT专家网|IT商网|52PK游戏网|IT分众