Mfc 操作word方法
1、 打开word程序
变量声明
COleVariant vTrue((short)TRUE),
vFalse((short)FALSE),
vOpt((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
_Application oWordApp;
if (!oWordApp.CreateDispatch("Word.Application", NULL))
{
AfxMessageBox("CreateDispatch failed.", MB_OK | MB_SETFOREGROUND);
return;
}
2、 新建一个word文档
Documents oDocs;
_Document oDoc;
oDocs = oWordApp.GetDocuments();
oDoc = oDocs.Add(vOpt, vOpt, vOpt, vOpt);
3、 获取对文档的控制
Selection oSel;
oSel = oWordApp.GetSelection();
4、 保存文档
_Document oActiveDoc;
oActiveDoc = oWordApp.GetActiveDocument();
oActiveDoc.SaveAs(COleVariant("c:\\doc2.doc"),
COleVariant((short)0),
vFalse, COleVariant(""), vTrue, COleVariant(""),
vFalse, vFalse, vFalse, vFalse, vFalse);
//退出word应用程序
oWordApp.Quit(vOpt, vOpt, vOpt);
5、 设置字体
添加msword.olb中的font类,在工程中生成的类名为CFont0
使用如下代码将CFont0与文档建立关联
CFont0 font;
font = oSel.GetFont();
然后调用函数设置字体大小:
font.put_Size(15);
使用以下函数设置字体:
font.put_Name("华文楷体");
6、 设置段落对齐方式
添加msword.olb中的ParagraphFormat类,在工程中生成的类名为CParagraphFormat
a) 与文档建立关联:
CParagraphFormat paraFormat;
paraFormat = oSel.GetParagraphFormat();
b) 设置段落对齐方式:
paraFormat.put_Alignment(para);
参数para为long类型,有效参数为1~4,对应关系如下:
1: 居中
2: 右对齐
3:两边对齐
4:分散对齐
Other:无格式,默认为两端对齐(在我的机子上如此)
7、 打开已有文档:
//下面是定义VARIANT变量;
COleVariant varFilePath("c:\\word表格.doc");
COleVariant varstrNull("");
COleVariant varZero((short)0);
COleVariant varTrue(short(1),VT_BOOL);
COleVariant varFalse(short(0),VT_BOOL);
m_Docs.AttachDispatch(m_App.GetDocuments());//将Documents类对象m_Docs和Idispatch接口关联起来;
m_Docs.Open(varFilePath,varFalse,varFalse,varFalse,
varstrNull,varstrNull,varFalse,varstrNull,
varstrNull,varTrue,varTrue,varTrue);//打开文档
m_Sel.AttachDispatch(m_App.GetSelection());//将Selection类对象m_Sel和Idispatch接口关联起来;
评论
发表评论