新浪首页免费邮件用户注册网站地图
上移动梦网
赢手机大奖

新浪首页 > 科技时代 > 网上学园 > 操作系统 > 正文
通过OLE实现Excel或Word数据交换

http://www.sina.com.cn 2001/11/05 16:30 中国电脑教育报

  文/张喜瑞、毛立夏

  利用Microsoft Office产品中的Word或Excel担当应用程序的数据输入、输出接口,可以实现复杂的输入界面和输出界面的设计。OLE可以使基于Windows的应用程序之间能够互相协作,实现系统集成,因此,我们就可以在VB中使用OLE来显示和控制其他应用程序的数据交换。

  本文综合这些软件的特点,提出下列应用程序输入和输出功能模块的开发模式。其数
据流程框图如图所示。


  设计模板文件

  首先在Excel或Word中根据输入和输出界面的要求,设计好应用程序的输入界面和输出报表模板文件,文件中应包括框架、表格线的大小和单元格的样式,即设计好所有单元格的值和格式,并且活动数据项中只含格式而不含模板数据,最后存盘到适当位置。

  对OLE对象的连接

  下面以Excel作为控制对象实例,来说明在VB中通过OLE链接完成数据输入、输出的操作步骤:

  1、 引用Microsoft Excel类型库(对于OLE自动化对象,该步骤可省略)。从[工程]菜单中选择[引用]菜单项。在可引用列表框中选择[Microsoft Excel8.0 Object Library]项。最后[确定]即可

  2、 声明显示OLE对象数据类型及其变量:

  方法1:声明作为一个普通OLE对象

  public ExcelApp As object

  方法2:声明作为一个Excel应用程序

  public ExcelApp As Excel.Application

  3、 创建OLE对象新实例或指定为特定的对象,获取Excel的控制句柄。我们通过三种方法来实现:

  方法1:Set ExcelObj = CreateObject("Excel.Application")

  方法2:Set ExcelObj = CreateObject("Excel.Application")

  方法3:Set ExcelObj = GetObject(app.path+"\ template \ templ.xls")

  4、 设置OLE对象的Visible属性,使其成为前台程序。

  方法1: ExcelObj.Application.Visible = True

  方法2: ExcelApp.Visible = True

  应用OLE

  打开前面在Excel中创建的模板文件templ.xls:

  ExcelObj.Workbooks.Open (app.payh+"\ template \ templ.xls")。

  如果是新建则采用ADD方法:

  ExcelObj.Workbooks.ADD (app.path+"\"+DestinationFileName)

  如果前面是通过GetObject函数引用一个特定的对象,则该步骤取消。

  编写代码

  1、完成数据的存取或格式控制

  '把一个Access数据库表thePrintTable数据输出到ExcelObj对应单元格式中:

  thePrintTable.MoveFirst

  ExcelObj.Range ( "E3" ).Value = thePrintTable.Fields (0 )

  ExcelObj.Range ( "F3" ).Value = ( thePrintTable.Fields (1 ) +thePrintTable.Fields (2 ) ) /4

  '直接输出到单元格

  ExcelObj.Range ("B2" ).Value = "VB输入输出界面开发模式"

  ExcelObj.Range ( "E4" ).Value = 2000

  '调整Excel行高的语句

  ExcelObj.Rows ( "5" ).RowHeight = 40

  有关其他功能和格式控制的命令可以借助Excel [工具]中的[宏]功能获得。

  2、输出报表

  存盘:ExcelObj.ActiveWorkbook.Save。

  另存为:ExcelObj.ActiveWorkbook.SaveAs app.path+"\"+ destinationFileName。

  打印预览:ExcelObj.ActiveWorkbook.PrintPreview。

  打印:ExcelObj.ActiveWorkbook.print

  3、交还Excel控制语句,释放对象

  Set ExcelObj = Nothing 或 Set ExcelApp = Nothing



发表评论】【初学者园地】【科技聊天】【关闭窗口

新 闻 查 询

 相关链接
用Excel 2000排序身份证一法 (2001/10/30 13:52)
Excel 2000中的快速操作 (2001/10/26 16:09)
用好Excel中的视图管理器 (2001/10/15 13:42)
微软提示:PowerPoint和Excel存在安全漏洞 (2001/10/09 07:20)
在Excel中利用VBA创建多级选单 (2001/10/08 10:45)
当心Excel四舍五入的陷阱 (2001/09/20 11:23)
Excel2002增强的数据处理功能一览 (2001/09/19 11:11)
打印Excel工作表的行号和列标 (2001/09/17 18:00)
比较成绩有妙招--Excel 2000 (2001/09/05 11:27)
Excel 2000中的公式应用技巧 (2001/08/28 12:15)
Excel常见错误及解决方法 (2001/08/27 13:55)
在VFP中调用Excel生成报表 (2001/08/23 16:33)
驯服“发疯”的Excel (2001/08/17 17:40)
Excel 2000的数字签名功能 (2001/08/14 11:45)


科技时代意见反馈留言板 电话:010-82612286 或 010-82628888-3488   欢迎批评指正

网站简介 | 用户注册 | 广告服务 | 招聘信息 | 中文阅读 | Richwin | 联系方式 | 帮助信息

Copyright © 1996 - 2001 SINA.com, Stone Rich Sight. All Rights Reserved

版权所有 四通利方 新浪网