VC 中操作word.docx_第1页
VC 中操作word.docx_第2页
VC 中操作word.docx_第3页
VC 中操作word.docx_第4页
VC 中操作word.docx_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

VC 中操作word第一步在函数InitInstance() 中加入如下代码1.如果是word 2003if ( CoInitialize(NULL) !=0 ) AfxMessageBox(初始化COM支持库失败);exit(1);如下图如果是 word 2007 ,加入如下代码:if(TRUE != AfxOleInit()AfxMessageBox(初始化COM支持库失败);exit(1);如下图第二步3打开ClassWizardAdd ClassFrom a type library,选择本机word8.OLB文件(最好先查找一下该文件,word2000为Word9.0LB,office2007 为MSWORD.OLB 一般在安装目录Microsoft OfficeOffice12 下)。选择Application、Documents、Document、Window、View 、Range、Bookmarks、Bookmark、Fields、FieId加入新类、头文件wordh、源文件wordcpp。如下图经过以上的添加后,在系统的存放代码文件的目录下会多出两个文件 msword.cpp msword.h。同时在VC 环境下查看类会发现多出了刚才添加的word里面的一些类,如下图所示打开对应的头文件,在文件的头部添加:#include comdef.h#include #include 第三步设计模板,准备一个word的模板,即*.dot格式的word文件,可以用word自己创建一个。在word中用户随意设计好报表的格式,并在相应需要程序修改的位置插入书签,书签用于将程序中想要输出变量的值带入模板中,模板中的书签名字一定要与程序中的一致,笔者建议将程序中变量的名字做为书签。模板设计的好坏,直接影响到报表打印的效果,程序只起到将程序中变量的值输出到模板中。Word 中书签的插入的操作如下图。随后将设计生产好的模板文件,放在和代码同一级的目录下。第四步相关代码的编写,源代码如下(下面的代码是操作word 2007)。其中在模板中留了2个书签,一个插入文字,一个插入图片,最后进行打印.void CWordDlg:OnWordButton() / TODO: Add your control notification handler code here_Application WordApp; /WoM应用程序对象Documents WordDocs;/文档对象_Document WordDoc;Window window;View view;Range range;Bookmarks bookmarks;/书签对象Bookmark bookmark;Fields fields; /域对象 Field field;if(!WordApp.CreateDispatch(_T(Word.Application)/启动WORDAfxMessageBox(_T(OFFICE可能没有安装);return;WordApp.SetVisible(true);/true可见,false不可见WordApp.SetWindowState(2);/0正常,1最大化2最小化WordDocs= WordApp.GetDocuments();/模板文件路径_variant_t WordTemplate=C:Documents and SettingsAdministrator桌面wordtemplete.doc;/为转义字符/利用模板文件建立新文档WordDoc=WordDocs.Add(&WordTemplate,&vtMissing,&_variant_t(),&_variant_t(true);/由于用户会对WORD进行一些个性化设置,但用户的设置会引起一些误操作。/以下代码设置WORD”工具一选项一视图”中的一些选项。window =WordApp.GetActiveWindow();view = window.GetView();view.SetShowPicturePlaceHolders(false);/不显示图片框view.SetShowBookmarks(false);/不显示书签view.SetShowFieldCodes(false);/不显示域代码/以下将程序中的值代人WORD模板中/测站名 bookmarks=WordDoc.GetBookmarks();bookmark = bookmarks.Item(&_variant_t(text); /Office模板中对应书签名range= bookmark.GetRange();range.SetText(哇咔咔);#if 1 Selection m_Sel;m_Sel.GoTo(&vtMissing,&vtMissing,&vtMissing,&_variant_t(picture);/m_Sel.GoTo(COleVariant(short)-1),COleVariant(short)0),COleVariant(short)0),COleVariant(picture);bookmarks=WordDoc.GetBookmarks();bookmark = bookmarks.Item(&_variant_t(picture); /Office模板中对应书签名range= bookmark.GetRange();InlineShapes m_wdlnlineShapes;m_wdlnlineShapes=range.GetInlineShapes();CComVariant LinkToFile(FALSE);CComVariant SaveWithDocument(TRUE);CComVariant RangT;RangT.vt=VT_DISPATCH;RangT.pdispVal=range.m_lpDispatch; m_wdlnlineShapes.AddPicture(C:Documents and SettingsAdministrator桌面word面板图3.bmp, &LinkToFile,&SaveWithDocument,&RangT);/图片到文档中 range.m_lpDispatch=NULL;#endifCComVariant copys(1);CComVariant Background(false);WordApp.PrintOut(&Background, &vtMissing, &vtMissing, &vtMissing, &vtMissing, &vtMissing, &vtMissing, ©s, &vtMissing, &vtMissing, &vtMissing, &vtMissing, &vtMissing, &vtMissing, &vtMissing, &vtMissing, &vtMissing, &vtMissin

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论