欢迎来到天天文库
浏览记录
ID:38254922
大小:238.82 KB
页数:7页
时间:2019-06-07
《VC 中操作word》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、VC中操作word第一步在函数InitInstance()中加入如下代码1.如果是word2003if(CoInitialize(NULL)!=0){AfxMessageBox("初始化COM支持库失败");exit(1);}如下图如果是word2007,加入如下代码:if(TRUE!=AfxOleInit()){AfxMessageBox("初始化COM支持库失败");exit(1);}如下图第二步3.打开ClassWizard—AddClass—Fromatypelibrary,选择本机word8.OLB文件(最好先查找一下该文件,word2000为Wo
2、rd9.0LB,office2007为MSWORD.OLB一般在安装目录MicrosoftOfficeOffice12下)。选择Application、Documents、Document、Window、View、Range、Bookmarks、Bookmark、Fields、FieId加入新类、头文件word.h、源文件word.cpp。如下图经过以上的添加后,在系统的存放代码文件的目录下会多出两个文件msword.cppmsword.h。同时在VC环境下查看类会发现多出了刚才添加的word里面的一些类,如下图所示打开对应的头文件,在文件的头部添加:#i
3、nclude"comdef.h"#include#include第三步设计模板,准备一个word的模板,即*.dot格式的word文件,可以用word自己创建一个。在word中用户随意设计好报表的格式,并在相应需要程序修改的位置插入书签,书签用于将程序中想要输出变量的值带入模板中,模板中的书签名字一定要与程序中的一致,笔者建议将程序中变量的名字做为书签。模板设计的好坏,直接影响到报表打印的效果,程序只起到将程序中变量的值输出到模板中。Word中书签的插入的操作如下图。随后将设计生产好的模板文件,放在和代码同一级的目
4、录下。第四步相关代码的编写,源代码如下(下面的代码是操作word2007)。其中在模板中留了2个书签,一个插入文字,一个插入图片,最后进行打印.voidCWordDlg::OnWordButton(){//TODO:Addyourcontrolnotificationhandlercodehere_ApplicationWordApp;//WoM应用程序对象DocumentsWordDocs;//文档对象_DocumentWordDoc;Windowwindow;Viewview;Rangerange;Bookmarksbookmarks;//书签对象Boo
5、kmarkbookmark;Fieldsfields;//域对象Fieldfield;if(!WordApp.CreateDispatch(_T("Word.Application")))//启动WORD{AfxMessageBox(_T("OFFICE可能没有安装"));return;}WordApp.SetVisible(true);//true可见,false不可见WordApp.SetWindowState(2);//0正常,1最大化.2最小化WordDocs=WordApp.GetDocuments();//模板文件路径_variant_tWord
6、Template="C:\DocumentsandSettings\Administrator\桌面\word\templete.doc";//为转义字符//利用模板文件建立新文档WordDoc=WordDocs.Add(&WordTemplate,&vtMissing,&_variant_t(),&_variant_t(true));//由于用户会对WORD进行一些个性化设置,但用户的设置会引起一些误操作。//以下代码设置WORD”工具一选项一视图”中的一些选项。window=WordApp.GetActiveWindow();view=wind
7、ow.GetView();view.SetShowPicturePlaceHolders(false);//不显示图片框view.SetShowBookmarks(false);//不显示书签view.SetShowFieldCodes(false);//不显示域代码//以下将程序中的值代人WORD模板中//测站名bookmarks=WordDoc.GetBookmarks();bookmark=bookmarks.Item(&_variant_t("text"));//Office模板中对应书签名range=bookmark.GetRange();rang
8、e.SetText("哇咔咔");#if1Selec
此文档下载收益归作者所有