您的位置:首页 > 其它

MFC操作word 配置环境 生成简单报表

2017-05-02 19:54 459 查看
一、为MFC配置操作word的环境

  两种方式:1、将msword.h和msword.cpp添加到工程中(自己下,资源多),完成后会增加很多类。在实现文件上添加#include "msword.h"即可。

  2、从类型库MSWORD.OLB导入相关类,具体参见:点击打开链接(一些细节解释参见点击打开链接 使用VS2010操作EXECL),实际测试中将CApplication.h中自动生成的类似#import "C:\\Program Files\\Microsoft Office\\OFFICE11\\MSWORD.OLB" no_namespace 注释掉后,只添加了前两行代码,然后为某些自动生成.h里个别漏void返回值的成员函数添加了void即编译通过(也不清楚为何会漏)。此外甚至有的不需要添加额外的代码即通过,如点击打开链接Automating
Word 2016 using Visual C++ MFC in Visual Studio 2015(CodeProject上的开源工程,挺详尽)。可以看出该方法挺繁杂,多种情况,但也有只添加需要的类,更规范优点。

  其实第一种方式的两个文件是VC6.0导入类型库后自动生成的,无奈VS2010及以后的版本却更不好使了。。。。

好的资源:1、点击打开链接 stackoverflow: How
to read MS Word documents using MFC?

2、C++
app automates Word官方示例,3种方式,mfc竟没讲。。。

3、VS2010通过OLE操作Excel2010

4、【MFC/C++操作word】Word篇封装了操作word的类,挺详尽

5、Microsoft.Office.Interop.Word Namespace msdn

二、MFC生成word报表

工程下有时需要生成报表,网页上介绍的基本上都是新建空白文档,然后表格,文字,样式啦一点点加,太费劲啦!我想的是有一个word报表的模板,生成时只需以它为模板新建文档,并填表即可。



图1 报表模板



图2 自动生成的
我是按上述第一种方式配置环境的

//Word应用程序
_Application app;
Documents docs;
_Document doc;
Tables tabs;
Table tab;
//获得报表模板路径
CString path;
GetCurrentDirectoryW(MAX_PATH, path.GetBuffer(MAX_PATH));
path.ReleaseBuffer();
path += "\\检测报表.doc";
//按模板创建新文档
app.CreateDispatch(L"Word.Application");
CComVariant templ(path), newTem(false), type(0), visib(true);
docs.AttachDispatch(app.GetDocuments());
doc.AttachDispatch(docs.Add(&templ, &newTem, &type, &visib));
//在第三行写当前日期
Selection sel = app.GetSelection();//初始为文首
sel.MoveDown(COleVariant((short)5), COleVariant((short)2),
COleVariant((short)0));//5为wdLine,按行下移;2为移两行;0为wdMove,只移动光标不选中(1为wdExtend还要选中)
COleDateTime dt = COleDateTime::GetCurrentTime();
CString strDT = dt.Format(_T("%Y-%m-%d"));
sel.TypeText(strDT);
//填表
tabs = doc.GetTables();
tab = tabs.Item(1);
for (int i = 2; i <= 3; ++i)
for (int j = 2; j <= 6; ++j)
{
Cell ce;
CString str;
ce = tab.Cell(i, j);
ce.Select(); //选中该单元
str.Format(L"%d, %d", i, j);
sel.TypeText(str);
}
//显示
app.SetVisible(true);
//释放环境
doc.ReleaseDispatch();
docs.ReleaseDispatch();
app.ReleaseDispatch();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mfc word 配置 报表