vs2005操作word详解

来源:互联网 发布:手机淘宝5.8.4版本 编辑:程序博客网 时间:2024/06/03 20:59

 微软word用起来很是方便,可是要在mfc中导入word却没那么容易,经过几天的磕磕绊绊,终于算功夫不负有心人,下面是我做的一点总结。

1、首先要导入word库,在头文件中加入 #import "C:\\Program Files\\Microsoft Office\\OFFICE11\\MSWORD.OLB" no_namespace raw_interfaces_only rename("ExitWindows","_ExitWindows")

2、引入头文件
#include "CApplication.h"//word程序对象
#include "CDocuments.h"//文档集对象
#include "CDocument0.h"//单个doc对象
#include "CSelection.h"//该对象代表窗口货窗格中的当前所选内容,使用率最高
#include "CCell.h"//表格单元格
#include "CCells.h"//表格单元格集合
#include "CRange.h"//该对象代表文档中的一个连续持续范围
#include "CTable0.h"//单个表格
#include "CTables0.h"//表格集合
#incldue "CFont0.h"//字体
#incldue "CParagraphs.h"//段落集合
#include "CParagraphFormat.h"//段落格式
#incldue "CParagraph.h"//单个段落
#include "CnlineShape.h"//单个inline对象

#include "CnlineShapes.h"//inline图像对象集合

3、创建word文档或打开已有文档
CAppliction appWord;//定义一个Word的应用对象
appWord.CreateDispatch("Word.Application");//启动word
app.put_Visible(TRUE);//设置word可见
CDocuments docs;
CDocument0 doc;
docs=appWord.get_Documents();//从app中获取Documents


CComVariant vTpl("");//引号中为空时创建新文档,为绝对路径时打开文档。
CComVariant vFalse(false),vZero(0),vVisible;
doc=docs.Add(&vTpl,&vFalse,&vZero,&vVisible);//创建新文档时用vVisible,打开已有文档时用vTrue;

4、写入字体以及段落光标操作
CSelection sel;
sel=appWord.get_Selection();
sel.TypeText("Hello\r\n大家好呀!");
sel.HomeKey(COleVariant((short)wdLine),COleVariant((short)1));//返回当前行首,并选择当前行(为0的时候只返回行首)
CFont0 font=sel.get_Font();
font.put_Name("楷体");

5、段落操作
CParagraph lastPara=sel.get_ParagraphFormat();//获得当前段落
lastPara.put_Alignment(wdAlignParagraphCenter);//设置对齐方式
sel.EndOf(COleVariant((short)wdParagraph),COleVariant((short)0));//结束当前段落编辑,移动光标到段落后
sel.TypeParagraph();//新起一段

6、插入图片
CString strPic="D:\\111.jpg";//必须为绝对路径
CComVariant vtOpn(DISP_E_PARAMNOTFOUND,VT_ERROR);
CnlineShapes lineShapes;
lineShapes=sel.get_InlineShapes();
lineShapes.AddPicture(strPic,&vtFalse,&vtTrue,&vtOpn);

7、保存word
CString strSave="D:\\123.doc";
CComVariant fileName(strSave);
doc.SaveAs(&fileName,&vtOpn,&vtOpn,&vtOpn,&vtOpn,&vtOpn,&vtOpn,&vtOpn,&vtOpn,&vtOpn,&vtOpn,&vtOpn,&vtOpn,&vtOpn,&vtOpn,&vtOpn);

8、退出word应用程序
CComVariant SaveChanges(FALSE),OriginalFormat,RouteDocument;
appWord.Quit(&SaveChanges,&OriginalFormat,&RouteDocument);

原创粉丝点击