MSDN,所有的类都可以从MSDN查到
Microsoft.Office.Interop.Word 命名空间
msword.h文件在这里
MFC vc++ 写 word 文件,msword.h文件
msword.cpp文件在这里
MFC vc++ 写 word 文件,msword.cpp文件(1)
MFC vc++ 写 word 文件,msword.cpp文件(2)
写一个例子,将msword.h 和 msword.cpp 文件加入到工程
功能是:生成一个doc文件,在文件中写入一个分页符,页脚显示 第n页,共N页
1 void CcreateDocDlg::OnBnClickedOk() 2 { 3 // TODO: 在此添加控件通知处理程序代码 4 //1.开启word 5 _Application word_app; 6 if (!word_app.CreateDispatch(_T("Word.Application"), NULL))//这是office环境 7 //if (!word_app.CreateDispatch(_T("KWPS.Application"), NULL))//这是wps环境 8 { 9 AfxMessageBox(_T("本机没有安装word产品!")); 10 return; 11 } 12 word_app.SetVisible(FALSE);//设置word不可见 13 14 //2.新建文档 15 COleVariant vTrue((short)TRUE), vFalse((short)FALSE), VOpt((long)DISP_E_PARAMNOTFOUND, VT_ERROR); 16 Documents docs; 17 _Document doc; 18 docs = word_app.GetDocuments(); 19 doc = docs.Add(new CComVariant(_T("")), new CComVariant(false), new CComVariant(0), new CComVariant()); 20 Selection sel = word_app.GetSelection(); 21 22 CComVariant pageBreak = CComVariant(7); 23 sel.InsertBreak(&pageBreak);//插入分页符 24 25 Window win = doc.GetActiveWindow();//窗口Window对象 26 Pane pane = win.GetActivePane();//当前活动Pane窗格对象 27 View view = pane.GetView();//View视图对象 28 29 view.SetSeekView(10);//进入页脚视图 30 Paragraphs wordParagraphs = sel.GetParagraphFormat(); 31 wordParagraphs.SetAlignment(2);//0 左 1剧中 2右 32 sel.TypeText(_T("第 ")); 33 Range range = sel.GetRange(); 34 Fields fields = range.GetFields(); 35 CComVariant preameter1 = CComVariant(33); 36 CComVariant preameter2 = CComVariant(0);//第二个参数填入0在wps下会弹出有个错误框,这里第二个参数填入的字符串好像也没用到随便写一个 37 CComVariant preameter3 = CComVariant(0); 38 Field field = fields.Add(range, &preameter1, COleVariant(_T("wdFieldPage")), &preameter3);//页码 39 sel.TypeText(_T("页 共 ")); 40 range = sel.GetRange(); 41 fields = range.GetFields(); 42 field = fields.Add(range, COleVariant((short)26), COleVariant(_T("wdFieldNumPages")), COleVariant(short(0)));//页数 43 sel.TypeText(_T(" 页")); 44 view.SetSeekView(0);//返回文字视图 45 46 //4.保存并退出 47 doc.SaveAs(COleVariant(_T("E:\123.doc")), VOpt, VOpt, VOpt, VOpt, VOpt, VOpt, VOpt, VOpt, 48 VOpt, VOpt, VOpt, VOpt, VOpt, VOpt, VOpt); 49 50 doc.Close(vFalse, VOpt, VOpt); 51 doc.ReleaseDispatch(); 52 docs.ReleaseDispatch(); 53 word_app.Quit(VOpt, VOpt, VOpt); 54 word_app.ReleaseDispatch(); 55 }
其中的
CreateDispatch(_T("KWPS.Application")是WPS环境
CreateDispatch(_T("Word.Application")是office环境
其他代码不变,都可以生成doc文件
其中分页符、进入页脚视图、页数、总页数等,这些值通过查MSDN可以查到,他们的参数是宏定义
但是编译时,直接写这些宏定义是未定义的,这时就需要查这些宏定义的值了,请参考