Welcome

首页 / 软件开发 / C++ / VC++中调用word进行word表格的填写

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 AccessMsacc8.olbMsacc9.olb
Microsoft ExcelExcel8.olbExcel9.olb
Microsoft GraphGraph8.olbGraph9.olb
Microsoft Outlook®Msoutl8.olbNote: Use Msoutl85.olb for Outlook 98

Msoutl9.olb
Microsoft PowerPoint®Msppt8.olbMsppt9.olb
Microsoft WordMsword8.olbMsword9.olb

在VC++调用word中,我们需要导入msword9.olb才能使用word中的各种功能。

用VC++创建一个自动化客户机

The COleDispatchDriver Class

vc提供了一个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从类型库中创建所需的类