热情软件屋

 

在VC++ 5.0中如何通过OLE技术访问Excel对象


编号:QA000049
建立日期: 1998年6月1日 最后修改日期:1998年6月1日
所属类别:

刘治开:
    我想请问在VC++ 5.0中如何通过OLE或ActiveX技术访问Excel对象的资源?例如获取单元格中的内容、控制Excel菜单中的某些功能等等。

回答:

    在VC++ 中调用Excel对象的技术叫OLE Automation(现在叫ActiveX Automation,但无实质的不同)。它实技上是用VC++ 5.0编写OLE Automation的客户机,而让Excel作为OLE Automation服务器。当然,VC++ 5.0也可以用来编写OLE Automation的服务器,让Excel作为客户机。Automation技术是一项非常重要的技术,它使得你可以在不同的软件之间进行非常方便的调用,比如可以让FoxPro、Delphi、VB去调用Excel。Excel是从5.0版开始支持Automation技术,客户程序调用Excel的过程类似于使用VBA(Visual Basic for Application)进行编程,所以要想实现Automation技术,你不单要掌握VC++,还要了解VBA。Word虽然从Word 97才开始支持VBA,但从6.0版就已经支持Automation技术了,只不过使用的是Word Basic。其它的Office软件也支持Automation技术。
    
    在VC++中编写Automation客户程序是非常容易的。在ClassWizard中选择Automation标签,然后按Add Class按钮,再选择From a type lib,然后去找Excel的type lib文件。该文件在Excel目录下,Excel 5.0为XL50EN.OLB(英文版)和XL50CHS.OLB(简体中文版),Excel 97为XL5EN32.OLB和XL5CHS32.OLB,选择其一即可。此时,ClassWizard会显示所有可用的Excel对象供选择(见图)。如果你要获取单元格中的内容,可以选择Worksheet等对象,当你选择了相应的对象后,ClassWizard将建立C++的类,你可以在程序中调用该类的成员。使用本文的方法也可以调用Office中的其他部分。
    
    相关问题:
    QA003840 "如何调用一个带有可选参数"
    QA003964 "如何在DELPHI中控制EXCEL"

此问题由李海回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio