word中插入图片,图表,字符替换,表格填写,合并

//1.word中插入图片 CoInitialize(NULL); COleVariant vOpt((long)DISP_E_PARAMNOTFOUND, VT_ERROR); _Application WordApp; //代表WORD程序 Documents docs; //代表一个WORD程序里的所有文档 _Document doc,doc1; //代表一个文档 Selection Sel;//定义Word提供的选择对象; COleVariant covOptional((long)DISP_E_PARAMNOTFOUND,VT_ERROR); if(!WordApp.CreateDispatch("Word.Application")) { AfxMessageBox("创建Word2003服务失败!"); exit(1); } WordApp.SetVisible(TRUE); COleVariant varFilePath("D://123.doc"); COleVariant varstrNull(""); COleVariant varZero((short)0); COleVariant varTrue(short(1),VT_BOOL); COleVariant varFalse(short(0),VT_BOOL); docs.AttachDispatch(WordApp.GetDocuments());//将Documents类对象m_Docs和Idispatch接口关联起来; docs.Open(varFilePath,varFalse,varFalse,varFalse, varstrNull,varstrNull,varFalse,varstrNull, varstrNull,varTrue,varTrue,varTrue,vOpt,vOpt,vOpt,vOpt); Sel.AttachDispatch(WordApp.GetSelection());//将Selection类对象m_Sel和Idispatch接口关联起来 doc = WordApp.GetActiveDocument(); //用InlineShapes插入图片 LPCTSTR FileName = "C://Documents and Settings//gaotao//桌面//Work-6M-3W//DrawChar//abc.bmp"; Range selRange = Sel.GetRange(); CComVariant LinkToFile(FALSE); CComVariant SaveWithDocument(TRUE); CComVariant RangeT;//图片插入位置 RangeT.vt = VT_DISPATCH;//指明整形数据 RangeT.pdispVal = selRange.m_lpDispatch; InlineShapes inlineshape = Sel.GetInlineShapes(); inlineshape.AddPicture(FileName, &LinkToFile, &SaveWithDocument, &RangeT); /* //用Shapes插入图片 Shapes shs; //代表文档中的所有图形 shs=doc.GetShapes(); //shs.AddPicture("d://image.bmp",covOptional,covOptional,covOptional,covOptional,covOptional,covOptional,covOptional); //如果想指定位置可以这样 //指定图片的左上角的y坐标为100,如果图片的宽和高不指定的话就会使用图片的原宽和高 //Function AddPicture(FileName As String, [LinkToFile], [SaveWithDocument], [Left], [Top], [Width], [Height], [Anchor]) shs.AddPicture("d://image.bmp",covOptional,covOptional,COleVariant((long)200),COleVariant((long)200),COleVariant((long)200),COleVariant((long)200),covOptional); */ CoUninitialize(); //2.word插入图表 CoInitialize(NULL); BeginWaitCursor(); COleVariant vTrue((short)TRUE), vFalse((short)FALSE), vOpt((long)DISP_E_PARAMNOTFOUND, VT_ERROR); _Application App;//定义Word提供的应用程序对象; Documents Docs;//定义Word提供的文档对象; Selection Sel;//定义Word提供的选择对象; Docs.ReleaseDispatch(); Sel.ReleaseDispatch(); App.m_bAutoRelease=true; if(!App.CreateDispatch("Word.Application")) { AfxMessageBox("创建Word2003服务失败!"); exit(1); } App.SetVisible(TRUE); //下面是定义VARIANT变量; COleVariant varFilePath("D://123.doc"); COleVariant varstrNull(""); COleVariant varZero((short)0); COleVariant varTrue(short(1),VT_BOOL); COleVariant varFalse(short(0),VT_BOOL); Docs.AttachDispatch(App.GetDocuments());//将Documents类对象m_Docs和Idispatch接口关联起来; Docs.Open(varFilePath,varFalse,varFalse,varFalse, varstrNull,varstrNull,varFalse,varstrNull, varstrNull,varTrue,varTrue,varTrue,vOpt,vOpt,vOpt,vOpt); //打开Word文档; Sel.AttachDispatch(App.GetSelection());//将Selection类对象m_Sel和Idispatc _Document oActiveDoc; oActiveDoc = App.GetActiveDocument(); //插入图表(第一种方式) COleVariant vFalse1; vFalse1 = COleVariant((short)false); COleVariant vTrue1((short)true); COleVariant vOpt1((long)DISP_E_PARAMNOTFOUND, VT_ERROR); /* InlineShapes oInlineShapes; oInlineShapes = Sel.GetInlineShapes(); InlineShape bb; //AddOLEObject(VARIANT* ClassType, VARIANT* FileName, VARIANT* LinkToFile, VARIANT* DisplayAsIcon, VARIANT* IconFileName, VARIANT* IconIndex, VARIANT* IconLabel, VARIANT* Left, VARIANT* Top, VARIANT* Width, VARIANT* Height, //AddOLEObject(VARIANT* ClassType, VARIANT* FileName, VARIANT* LinkToFile, VARIANT* DisplayAsIcon, VARIANT* IconFileName, VARIANT* IconIndex, VARIANT* IconLabel, VARIANT* Range) bb = oInlineShapes.AddOLEObject(COleVariant("MSGraph.Chart.8"), vOpt1, vFalse1, vFalse1, vOpt1, vOpt1, vOpt1, vOpt1); //bb.SetScaleHeight(200); //bb.SetScaleWidth(200); bb.SetWidth(1000); bb.SetHeight(1000); */ //Shapes插入图表(第二中方式)可指定在任意位置 Shapes shapes; shapes = oActiveDoc.GetShapes(); COleVariant covOptional((long)DISP_E_PARAMNOTFOUND,VT_ERROR); shapes.AddOLEObject(COleVariant("MSGraph.Chart.8"), vOpt1, vFalse1, vFalse1, vOpt1, vOpt1, vOpt1, COleVariant((long)200), COleVariant((long)200), COleVariant((long)200), COleVariant((long)200), vOpt1); 以上在word中插入图片和图表,分别用到了InLineShapes和Shapes的方法AddPicture()和AddOLEObject(),Shape 对象代表文档中的图形对象,InlineShape 代表文档中的嵌入式图形对象。所谓嵌入式图形对象,是指将图像作为文字处理,在排版上以文字的方式进行排版。Shape 与 InlineShape 对象在文档中分别属于 Shapes 集合与InlineShapes 集合。通过 Shape 对象的 ConvertToInlineShape 方法可以将 Shape 对象转换为 InlineShape 对象。通过 InlineShape 对象的 ConvertToShape 方法可将InlineShape 对象转换为 Shape 对象。 Shapes 集合与 InlineShapes 集合都有 AddPicture 方法,用于在文档中插入图片。两方法的定义如下: Shapes: Function AddPicture(FileName As String, [LinkToFile], [SaveWithDocument], [Left], [Top], [Width], [Height], [Anchor]) As Shape InlineShapes: Function AddPicture(FileName As String, [LinkToFile], [SaveWithDocument], [Range]) As InlineShape 两个方法的不同在于插入的位置的不同: InlineShapes 只能指定 Range 进行插入。这与文档中的文字插入是相同的。 Shapes 插入的图片可以任意定位。 //3查找并替换 CoInitialize(NULL); BeginWaitCursor(); COleVariant vTrue((short)TRUE), vFalse((short)FALSE), vOpt((long)DISP_E_PARAMNOTFOUND, VT_ERROR); _Application App;//定义Word提供的应用程序对象; Documents Docs;//定义Word提供的文档对象; Selection Sel;//定义Word提供的选择对象; Docs.ReleaseDispatch(); Sel.ReleaseDispatch(); App.m_bAutoRelease=true; if(!App.CreateDispatch("Word.Application")) { AfxMessageBox("创建Word2000服务失败!"); exit(1); } App.SetVisible(TRUE); //下面是定义VARIANT变量; COleVariant varFilePath("D://GPRS1800_plus.tem"); COleVariant varstrNull(""); COleVariant varZero((short)0); COleVariant varTrue(short(1),VT_BOOL); COleVariant varFalse(short(0),VT_BOOL); Docs.AttachDispatch(App.GetDocuments());//将Documents类对象m_Docs和Idispatch接口关联起来; Docs.Open(varFilePath,varFalse,varFalse,varFalse, varstrNull,varstrNull,varFalse,varstrNull, varstrNull,varTrue,varTrue,varTrue,vOpt,vOpt,vOpt); //打开Word文档; Sel.AttachDispatch(App.GetSelection());//将Selection类对象m_Sel和Idispatch接口关联起来; _Document oActiveDoc; oActiveDoc = App.GetActiveDocument(); short wdReplaceAll=2; //find.execute()方法中用到 char p1[40]; memset(p1, 0, sizeof(p1)); strcpy(p1, "+0"); while(1) { Find find = Sel.GetFind(); find.ClearFormatting(); //查找并替换 if( find.Execute(COleVariant(p 1),vFalse,vFalse,vFalse,vFalse,vFalse,vTrue,COleVariant(long(1)), vFalse,COleVariant("abc"),&COleVariant(wdReplaceAll),vFalse,vFalse,vFalse,vFalse)) { StrAdd(p1); } else { goto lable1; } } lable1: oActiveDoc.SaveAs(COleVariant("D://GPRS1800_plus.tem"), COleVariant((short)0), vFalse, COleVariant(""), vTrue, COleVariant(""), vFalse, vFalse, vFalse, vFalse, vFalse,vOpt,vOpt,vOpt,vOpt,vOpt); Docs.ReleaseDispatch();//断开关联; Sel.ReleaseDispatch(); //退出WORD App.Quit(vOpt, vOpt, vOpt); App.ReleaseDispatch(); EndWaitCursor(); CoUninitialize(); //4.表格填写 UINT ustar=0; CString sznumber; BeginWaitCursor(); CString curpage; curpage.Format("%d",m_nStarpage); COleVariant vTrue((short)TRUE), vFalse((short)FALSE), vOpt((long)DISP_E_PARAMNOTFOUND, VT_ERROR); _Application App;//定义Word提供的应用程序对象; Documents Docs;//定义Word提供的文档对象; Selection Sel;//定义Word提供的选择对象; Docs.ReleaseDispatch(); Sel.ReleaseDispatch(); App.m_bAutoRelease=true; // CString szreportNumber; // CString sztype1,sztype2,sztype3,sztype4,sztype5; if(!App.CreateDispatch("Word.Application")) { AfxMessageBox("创建Word2000服务失败!"); exit(1); } //App.SetVisible(TRUE); //下面是定义VARIANT变量; COleVariant varFilePath("C://measuresys//Template//GSM900_plus.tem"); COleVariant varstrNull(""); COleVariant varZero((short)0); COleVariant varTrue(short(1),VT_BOOL); COleVariant varFalse(short(0),VT_BOOL); Docs.AttachDispatch(App.GetDocuments());//将Documents类对象m_Docs和Idispatch接口关联起来; Docs.Open(varFilePath,varFalse,varFalse,varFalse, varstrNull,varstrNull,varFalse,varstrNull, varstrNull,varTrue,varTrue,varTrue,vOpt,vOpt,vOpt,vOpt); //打开Word文档; Sel.AttachDispatch(App.GetSelection());//将Selection类对象m_Sel和Idispatch接口关联起来; _Document oActiveDoc; oActiveDoc = App.GetActiveDocument(); Tables tabs=oActiveDoc.GetTables(); Table tab1=tabs.Item(1); Cell cefisr=tab1.Cell(1,3); cefisr.Select(); CString szcutdata=szdata.getfield('$',ustar); Sel.TypeText(szcutdata); ustar++; cefisr.ReleaseDispatch(); cefisr=tab1.Cell(1,5); cefisr.Select(); Sel.TypeText(curpage); m_nStarpage++; cefisr.ReleaseDispatch(); cefisr=tab1.Cell(1,7); cefisr.Select(); Sel.TypeText(m_totilepage); tab1.ReleaseDispatch(); tab1=tabs.Item(3); cefisr=tab1.Cell(4,1); cefisr.Select(); for(int i=0;i<3;i++){ //sznumber.Format("%d",m_number); // m_number++; //Sel.TypeText(sznumber); //Sel.MoveDown(COleVariant((short)5),COleVariant((short)1),COleVariant((short)0)); } cefisr.ReleaseDispatch(); for(i=0;i<3;i++){ for(int k=0;k<3;k++){ cefisr=tab1.Cell(i*3+k+4,6); cefisr.Select(); for(int j=0;j<5;j++){ szcutdata=szdata.getfield('$',ustar); if(!bsrc){ szcutdata=EditValue(szcutdata); } Sel.TypeText(szcutdata); ustar++; Sel.MoveRight(COleVariant((short)1),COleVariant((short)1),COleVariant((short)0)); } cefisr.ReleaseDispatch(); } szcutdata=szdata.getfield('$',ustar); Sel.TypeText(szcutdata); ustar++; } int h=0; cefisr=tab1.Cell(h*12+13,1); cefisr.Select(); for(int p=0;p<4;p++){ //sznumber.Format("%d",m_number); //m_number++; //Sel.TypeText(sznumber); //Sel.MoveDown(COleVariant((short)5),COleVariant((short)1),COleVariant((short)0)); } for(p=0;p<4;p++){ for(int o=0;o<3;o++){ cefisr=tab1.Cell(h*12+13+3*p+o,6); cefisr.Select(); for(int q=0;q<5;q++){ szcutdata=szdata.getfield('$',ustar); if(!bsrc){ szcutdata=EditValue(szcutdata); } Sel.TypeText(szcutdata); ustar++; Sel.MoveRight(COleVariant((short)1),COleVariant((short)1),COleVariant((short)0)); } cefisr.ReleaseDispatch(); } szcutdata=szdata.getfield('$',ustar); //if() Sel.TypeText(szcutdata); ustar++; } tab1.ReleaseDispatch(); tab1=tabs.Item(4); cefisr=tab1.Cell(1,3); cefisr.Select(); szcutdata=szdata.getfield('$',ustar); Sel.TypeText(szcutdata); ustar++; cefisr.ReleaseDispatch(); curpage.Format("%d",m_nStarpage); cefisr=tab1.Cell(1,5); cefisr.Select(); Sel.TypeText(curpage); m_nStarpage++; cefisr.ReleaseDispatch(); cefisr=tab1.Cell(1,7); cefisr.Select(); Sel.TypeText(m_totilepage); cefisr.ReleaseDispatch(); tab1.ReleaseDispatch(); tab1=tabs.Item(6); cefisr=tab1.Cell(1,1); cefisr.Select(); for( p=0;p<4;p++){ //sznumber.Format("%d",m_number); // m_number++; //Sel.TypeText(sznumber); // Sel.MoveDown(COleVariant((short)5),COleVariant((short)1),COleVariant((short)0)); } cefisr.ReleaseDispatch(); for(p=0;p<4;p++){ for(int o1=0;o1<3;o1++){ cefisr=tab1.Cell(3*p+1+o1,6); cefisr.Select(); for(int q1=0;q1<5;q1++){ szcutdata=szdata.getfield('$',ustar); if(!bsrc){ szcutdata=EditValue(szcutdata); } Sel.TypeText(szcutdata); ustar++; Sel.MoveRight(COleVariant((short)1),COleVariant((short)1),COleVariant((short)0)); } cefisr.ReleaseDispatch(); } szcutdata=szdata.getfield('$',ustar); //if() Sel.TypeText(szcutdata); ustar++; } tab1.ReleaseDispatch(); tabs.ReleaseDispatch(); oActiveDoc.SaveAs(COleVariant(szname), COleVariant((short)0), vFalse, COleVariant(""), vTrue, COleVariant(""), vFalse, vFalse, vFalse, vFalse, vFalse,vOpt,vOpt,vOpt,vOpt,vOpt); Docs.ReleaseDispatch();//断开关联; Sel.ReleaseDispatch(); //退出WORD App.Quit(vOpt, vOpt, vOpt); App.ReleaseDispatch(); EndWaitCursor(); //5.合并  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值