VC 创建WORD ,合并单元格,插入图片.

今天做了一个输出报表的模块,要用程序输出到WORD中,在网上找了半天,大多是VB代码,杂而且乱,尤其是合并单元格,几乎找不到有用的信息。所幸最终还是写了出来,拿来和大家分享一下,也可以少走些弯路。

 

一。 打开类向导->ClassInfo->Add class->From a type library 

      

        在WORD的安装目录下,找到msword.olb  加入以下类

      

_Application (word 实例)

Documents

_Document

Range

Tables

Table

Cells

Cell

Columns

Column

Selection         

InlineShapes   (用于插入图片)

 

 

 

二,代码实现。

#define  ERROR_CREATEFAIL 1
#define  ERROR_WRITEFAIL 2
#ifndef  ERROR_SUCESS
#define  ERROR_SUCESS  0
#endif

 

 

int MakeReport( LPCTSTR strFileName, LPCTSTR strImageName)
{
 
 COleVariant vTrue((short)TRUE), vFalse((short)false), vOpt((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
 _Application oWordApp;
 if(!oWordApp.CreateDispatch("Word.Application", NULL))
 {
  return ERROR_CREATEFAIL;
 }
 Documents oDocs;
 _Document oDoc;
 Range  wordRange;
 Tables  tables;
 Table  table;
 Cells  wordCells;
 Cell  wordCell;
 Columns  wordColumns;
 Column  wordColumn;
 
 try{

  oDocs = oWordApp.GetDocuments();
  oDoc = oDocs.Add(vOpt, vOpt, vOpt, vOpt);
  Selection oSel;
  oSel = oWordApp.GetSelection();
  tables = oDoc.GetTables();
  wordRange = oSel.GetRange();

  // 创建表格
  table = tables.Add(wordRange, 3, 10, vOpt, vOpt);
  table.SetAllowAutoFit(false);
  wordColumns = table.GetColumns();

  // 合并第一列
  wordColumn = wordColumns.Item(1);
  wordColumn.SetWidth(100);
  wordCells = wordColumn.GetCells();
  wordCells.Merge();
  wordRange.SetOrientation(1);
  wordCells.SetVerticalAlignment(1);
  wordRange.SetText("第一列");    

  // 合并三组标题
  /* ------------------------------- */
  wordCell = table.Cell(1, 2);
  wordRange = wordCell.GetRange();
  wordRange.SetText("A");  
  int iStart = wordRange.GetStart();
  wordCell = table.Cell(1, 4);                  
  wordRange = wordCell.GetRange();
  int iEnd = wordRange.GetEnd();
  wordRange.SetStart(iStart);
  wordRange.SetEnd(iEnd);
  wordCells = wordRange.GetCells();
  wordCells.Merge();


  wordCell = table.Cell(1, 3);                     //第二次合并时,前边已经只有两列了,所以从第三列开始
  wordRange = wordCell.GetRange();
  wordRange.SetText("B");
  iStart = wordRange.GetStart();
  wordCell = table.Cell(1, 5);
  wordRange = wordCell.GetRange();
  iEnd = wordRange.GetEnd();
  wordRange.SetStart(iStart);
  wordRange.SetEnd(iEnd);
  wordCells = wordRange.GetCells();
  wordCells.Merge();


  wordCell = table.Cell(1, 4);
  wordRange = wordCell.GetRange();
  wordRange.SetText("C"); 
  iStart = wordRange.GetStart();
  wordCell = table.Cell(1, 6);
  wordRange = wordCell.GetRange();
  iEnd = wordRange.GetEnd();
  wordRange.SetStart(iStart);
  wordRange.SetEnd(iEnd);
  wordCells = wordRange.GetCells();
  wordCells.Merge();

  /* ------------------------------- */

 

  // 写入数据
   ...

  ///

 

 


  //  插入图片
  Selection sel = oWordApp.GetSelection();
  sel.EndKey(COleVariant((short)6), COleVariant((short)0));
  sel.TypeParagraph();
  wordRange = sel.GetRange();
  InlineShapes iss  = wordRange.GetInlineShapes();
   iss.AddPicture(strImageName, vFalse, vTrue, vOpt);

  _Document oActiveDoc;
  oActiveDoc = oWordApp.GetActiveDocument();


  oActiveDoc.SaveAs(COleVariant(strFileName), COleVariant((short)0),
        vFalse, COleVariant(""), vTrue, COleVariant(""),
      vFalse, vFalse, vFalse, vFalse, vFalse,vFalse,vFalse,vFalse,vFalse,vFalse);
  

 }
 catch(CException *e)
 {
  e->ReportError();
  oWordApp.Quit(vFalse, vFalse, vFalse);
  return ERROR_WRITEFAIL;
 }
 oWordApp.Quit(vOpt, vOpt, vOpt);
 return ERROR_SUCESS;
}

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: vc_redist.x64 2019.exe 是 Microsoft Visual C++ 2019 Redistributable 的安装程序。它是为了帮助用户在运行需要相应 Visual C++ 运行时库的应用程序之前提前安装这些库。 Visual C++ 运行时库是由微软开发的用于支持运行在 Windows 操作系统上的 C++ 编写的应用程序所需的库文件集合。这些库文件包含了各种用于应用程序运行所需的函数、类、变量等,可以帮助程序正确运行和调用系统服务。不同版本的 Visual C++ 运行时库相互之间可能存在差异,所以当用户需要运行使用不同版本的 Visual C++ 编译的应用程序时,需要安装相应的运行时库。 vc_redist.x64 2019.exe 是用于安装 Visual C++ 2019 的运行时库的程序。通过运行这个程序,用户可以将相关的运行时库文件安装到自己的计算机上,然后可以成功地运行需要这些库的应用程序。安装过程相对简单,只需双击运行安装程序,然后按照提示完成安装即可。 总之,vc_redist.x64 2019.exe 是一种提供给用户安装 Visual C++ 2019 运行时库的工具。它的存在是为了兼容和支持使用 Visual C++ 2019 编译的应用程序的运行。 ### 回答2: vc_redist.x64 2019.exe 是一个Windows操作系统中的必备文件,它是Microsoft Visual C++ Redistributable Package的安装程序。这个文件是为了解决在运行某些软件时可能出现的缺少相关组件的问题。 Microsoft Visual C++是一种被广泛使用的开发工具,许多软件和游戏都是使用这个工具来开发的。然而,由于各种原因,用户的电脑上可能缺少所需的C++运行库。此时,我们需要用到vc_redist.x64 2019.exe 来安装这些丢失的组件。 安装vc_redist.x64 2019.exe非常简单,只需双击运行该文件并按照提示进行操作即可。安装成功后,系统将获得所需的C++运行库,并能够正常运行依赖这些库的软件。 需要注意的是,vc_redist.x64 2019.exe是以64位版本为基础的,适用于64位的Windows操作系统。如果您的电脑是32位系统,需要下载并安装相应的32位版本。 总的来说,vc_redist.x64 2019.exe 是解决某些软件在运行时出现缺失组件的问题所必需的安装程序。希望上述解答对您有所帮助。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值