vc++2005 操作word2003

vc++2005 操作word2003

作者:邵盛松 2009年3月21日

从解决方案资源管理器或者类视图中添加类,选择添加 TypeLib中的MFC 类。从文件找到office11目录下

msword.olb文件,添加所有的类,因为暂时不清都需要添加哪些,所以都添加了。
这时候会在项目中添加N多类。
CApplication类对应Application对象,获取wordApplication对象,可以控制word的显示,例如显示打印预览,

状态栏是否可见等
CDocument0类对应Document对象,打开或者创建一个word文件时,Document对象就产生了。
CDocuments类对应Documents对象这是一个Document对象的集合。操作多个word时需要。
CRange类对应Range对象,该对象用于操作word中的一块区域,Range对象代表word中一块连续的区域,有起始位

置和结束位, VC中用COleVarian对象的intVal属性表示起始位和结束位。put_Text向该区域中写入文字。

CTables0类对应表格对象,还有Column,Row,Cell对象.

我看到其他的教程里需要添加Excel9.h,或者Excel8.h,但这里不需要。因为根本就没有产生这几个文件,那是

低版本的office的操作。

引入MSWORD.OLB文件
在stdafx.h文件添加下面代码

#import "E://Program Files//Microsoft Office//Office11//MSWORD.OLB"  no_namespace 

raw_interfaces_only  /
    rename("FindText","_DreamFindText")       /
    rename("Rectangle","_DreamRectangle")   /
    rename("ExitWindows","_DreamExitWindows")

引入MSWORD.OLB文件,费一番周折才成功。不过还有几个警告。

简要说明
新建一个对话框程序
在dlg.cpp文件中添加下列头文件
#include "CApplication.h"
#include "CDocuments.h"
#include "CDocument0.h"
#include "CRange.h"

声明一个Application对象

CApplication appWord;
CDocuments docs;
CDocument0 doc;

if(!appWord.CreateDispatch(_T("Word.Application"),NULL))
    {
        return ;
    }

appWord.put_Visible(true);
docs=appWord.get_Documents();
   
COleVariant covOptional((long)DISP_E_PARAMNOTFOUND,VT_ERROR);
    COleVariant start,end;
    start.intVal=1;
    end.intVal=1;
doc=docs.Add(COleVariant(_T("c://1.doc")),covOptional,covOptional,covOptional);

range.put_Text(_T("1"));//写入数据

剩下的就是保存和关闭
doc.Close(covOptional,covOptional,covOptional);
appWord.Quit(covOptional,covOptional,covOptional);

你可能感兴趣的:(vc++2005 操作word2003)