VC++中调用word进行word表格的填写2010-12-22lypindream在实际应用中,编程者往往喜欢程序能自动生成word说明文档,说明程序运 行的状况或运行的结果;或者程序能提取数据库的内容生成word表格,使用户能 方便的查看和修改,打印。但是VC++中调用word的确不容易,特别是对word中各 种函数的使用,本文以作者的工作经验详细介绍一下如何调用word和进行word表 格的填写,有同样需求的编友也可查看一下MSDN中的Automation Microsoft Office 97 and Microsoft office 2000。下面介绍以Microsoft Office 2000 Word为例。类型库一个类型库是一个提供COM对象功能信息的文件或文件的一部分,而且类型库 包含了有关类的信息。注意,类型库并不存储实际的对象,而只是存储有关这些 对象的信息。类型库详细说明了一个自动化客户机为对象需要调用的方法和属性 的信息,比如说它详细的描述了接受或返回的值。每一个Microsoft Office应用程序都在一个dll文件中提供了多种类型库资源 ,这种dll文件叫做目标库(*.olb)。下面的表列出了Microsoft Office 97和 Microsoft office 2000类型库文件的名字。
|
Microsoft Access | Msacc8.olb | Msacc9.olb | Microsoft Excel | Excel8.olb | Excel9.olb | Microsoft Graph | Graph8.olb | Graph9.olb | Microsoft Outlook® | Msoutl8.olbNote: Use Msoutl85.olb for Outlook 98 | Msoutl9.olb | Microsoft PowerPoint® | Msppt8.olb | Msppt9.olb | Microsoft Word | Msword8.olb | Msword9.olb |
|
在VC++调用word中,我们需要导入msword9.olb才能使用word中的各种功能。用VC++创建一个自动化客户机The COleDispatchDriver Classvc提供了一个COleDispatchDriver类来处理自动化对象的IDispatch接口,关 于COleDispatchDrive类的属性和函数请读者自行查阅类库,这里就不再赘述。1.创建一个新的Dialog-Base MFC AppWizard Exe工程名为 "WordAutomation";注意在MFC AppWizard - Step 2 of 4中的 Automaiton选项上打上勾,如下图所示:

图一 使用AppWizard生成基于对话框的的工程,如上所示选上Automation选 项。2.在View菜单中,点击ClassWizard,然后进入Automation标签中点击Add Class,选择From A Type Library。找到Microsoft Office 2000类型库 msword.olb,选择_Application,_Document,_Documents,Selection四个类, 如有其他需要(例如画表也可选择其他的类)。

图二 使用ClassWizard从类型库中创建所需的类