在vc中利用word生成测量报告.doc
文本预览下载声明
在vc中利用word生成测量报告
MFCVC++调用word进行报表制作
MFC/VC++调用word进行报表制作
使用word进行数据报告的制作可谓非常方便,word具有非常强大的编辑、排版功能。使用word能够制作出内容丰富、样式精美的报告。我们在工作中当然会有报表报告的需求,如果能够在MFC/VC++里面能够调用word进行word格式报告的自动生成,岂不是一件非常惬意的事情。
我在工作当中需要对大量的数据或者各种测试数据进行统计分析,最终的统计分析结果总归要汇总为一份报告,不管是内部使用也好还是外部提供给客户也好,一份内容翔实、格式精美的报告自然必不可少。我对MFC/VC++也不是高手,只是业余爱好自己动动手做些东西。自然,低于VC操作word可谓完全没有经验,在网络上面也查找了很多资料,都是些只言片语,不能真正的领略通过VC使用word的方法。于是自己摸索了几个礼拜,可谓耗时甚长,劳心劳力啊。MS的东西,封装的也太严实了,对于函数部分只有些许的简单介绍,往往看的云里雾里。没有实践还是不行啊!体会自己的经历,虽然辛苦但也有收获。不想其他朋友再继续走我走过的路,浪费时间、精力,故成文以共享。 废话少说,进入正题吧。
第一步,当然我们需要首先导入word需要的库。通过ClassWizard-Add Class选择From a Type Library…定位需要的库文件导入。本例应该使用C:\Program Files\Microsoft Office\OFFICE11\MSWORD.OLB,在这里尽可选择所有的类导入,反正用的时候都有了,呵呵。完成这一步,我们得到两个文件msword.h和msword.cpp,那就加入你的工程吧。
说明:如果需要在VC++/MFC开发程序操作word/excel等office元素,那么需要对必要的类型库进行导入.下面是office系列的类型库参考,导入类型库时候请选择
注意:这些类型库的默认位置是:
Dao350.dll 和 Dao360.dll 的默认位置是 C:\Program Files\Common Files\Microsoft Shared\Dao。
第二步,进入具体使用实践阶段。激动人心的时刻到来了,呵呵。不过别忘记把你的H文件#Include进来。下面是我的一个例子,从我具体的工程当中抽取出来供各位参考。有些地方我会简要解释。还等什么,赶紧试验一下代码吧。修改一下就是你的报告了,开心吧。
BOOL CMDIDemoApp::OnMakeReport() {
_Application wordApp; Documents wordDocs; _Document wordDoc; Selection wordSelection; Range wordRange; Tables wordTables; Table wordTable;Cell wordCell; Cells wordCells;
//Paragraphs wordParagraphs; //Paragraph wordParagraph; _Font wordFont; Shading wordShading;
//
int nRow=0; //
COleVariant vTrue((short)TRUE), vFalse((short)FALSE),
vOpt((long)DISP_E_PARAMNOTFOUND, VT_ERROR);CComVariant defaultBehavior(1),AutoFitBehavior(0); //创建word application实例
if (!wordApp.CreateDispatch(_T(Word.Application))){
AfxMessageBox(Word CreateDispatch Failed!);return FALSE; }
wordApp.SetVisible(TRUE);//make visible wordApp.Activate();//激活
wordDocs=wordApp.GetDocuments();//get documents object //
CString strDocTemplate; CString strPath;
char szFullPath[_MAX_PATH];
::GetModuleFileName(NULL,szFullPath,_MAX_PATH); strDocTemplate.Format(%s,szFullPath); int nPos=strDocTemplate.ReverseFind(#39;\\#39;); strDocTemplate=str
显示全部