http://www2.ccw.com.cn/tips/9907/072101_11.asp
用VB创建Excel报表 
中科院软件所 
张炜 
---- 在Visual Basic中制作报表,通常是用数据环境设计器(Data Environment Designer)与数据报表设计器(Data Report Designer),或者使用第三方产品来完成并通过ActiveX控件输出.但对于大多数习惯于Excel报表的用户而言,用以上两种方法生成的报表在格式和功能等方面往往不能满足他们的要求. 由于Visual Basic的可扩展性,使用和融入Office97的特性,包括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工作表中的一个或多个单元格. ---- 二.一个实例 ---- 1.在Excel中做一个模板 ---- 在用Visual Basic生成Excel报表之前,应先按照用户的要求在Excel中做好一个模板(文件后缀为.xlt).当然,对于那些格式不固定,需要动态生成的报表,也可在程序中控制其格式.本例需要为用户提供一个工程师工作的评价报告,我们所做的模板Engineer.xlt ---- 2.在Visual Basic程序中生成Excel报表 ---- 我们的例子中使用ADO从数据库中获取工程师工作的有关信息,然后按照模板Engineer.xlt的格式将数据写入Excel工作表中. ---- (1) 创建一个新的标准EXE工程文件. ---- (2) 在窗体frmEngineer中添加两个命令按扭,属性设置如下: Name  cmdOK
Caption OK
Name cmdCancel
Caption Cancel---- (3) 定义全局变量,并为Form_Load事件编程. ---- (4) 对OK按钮被击事件进行响应. ---- (5)对Cancel被击事件进行响应 ---- 3.运行程序,生成Excel报表 ---- 三.结束语 ----   通过在VB中使用ADO(ActiveX Data Object)和Excel提供的OLE对象,我们能够很容易地将数据库中的数据输出到Excel工作表里.用Visual Basic生成的Excel报表可以利用Excel本身的功能来进行打印预览,打印和保存,这样大大减少了程序员的工作量.

解决方案 »

  1.   

    我是用水晶报表做的报表,可是问题一大堆,最奇怪的是做出来的报表模板(.rpt文件)竟然会与具体的打印机相关,比如做.rpt文件时计算机的默认打印机是Canon的,一换成Epson的立刻就会发现打印版面全变了,到现在都不知如何解决,听说有个好象 叫ActiveX Report的打印控件不错,以后 找机会试一下。
      

  2.   

    敬请关注!!!!!!!
    http://www.csdn.net/expert/topic/755/755275.xml?temp=.6427271