BCB中通过OLE对Word中的XML节点设置


   XML技术是微软公司提出来的标准,早在Office中就已经支持,但实质性的使用是在Office2003中,Office 2007中实现了质的飞跃。
  因为要做一个项目,使用到Word中的XML功能,通过Office的VB自带的帮助对XML的使用简单地学习了一下,文件实际过程中考虑了一些常见的例子。

 

  在编制自动化客户程序时使其头文件要包含ComObj.hpp和Utilcls.h。

  1. #include <ComObj.hpp> 
  2. #include <Utilcls.h> 

  C++ Builder开发者把Excel自动化对象的功能包装在下面的四个Ole Object Class函数中,开发时可以很方便地进行调用。
  设置对象属性:Variant OlePropertySet(属性名,参数……);
  获得对象属性:Void OlePropertyGet(属性名,参数……);
  调用对象方法:Variant OleFunction(函数名,参数……);
  调用对象过程 Void OleProcedure(过程名,参数……);

  在使用过程中的预先设想达成的目的:

 
  一、向新生成的文档中添加XMLNode节点,通过宏操作得到添加节点的VB代码:ActiveDocument.XMLNodes.ADD "Name","NameSpaceURL",其中Name为节点的名称,NameSpaceURL为要添加的节点的命名空间。

   

  尝试使用:

  1.     (Variant)WordApplication.OlePropertyGet("ActiveDocument").OlePropertyGet("XMLNodes").OleFunction("ADD","Name","NameSpaceURL");

        运行时程序提示“发生意外”,更改OleFunction()为OleProcedure()仍然同样问题。

 

        二、想调用XMLNodes集的XMLNode节点,判断该节点的Name,根据Name具体的内容给些节点的NodeValue赋值:

  1. (Variant)WordApplication.OlePropertyGet("XMLNodes").OlePropertyGet("Item").OlePropertySet("Name",name); 

  提示“发生意外”

 

 

  解决方法:


  1. Variant vWordApp, vXMLNode; 
  2. //添加XML节点 
  3. //vWordApp为当前创建的Word应用程序 
  4. vWordApp.OlePropertyGet("ActiveDocument").OlePropertyGet("XMLNodes"
  5.         .OleProcedure("Add"
  6.         "标题",      //XML节点名 
  7.         "FileMgr"    //XML已存在的架构名,XML的命名空间 
  8.         ); 
  9. //获取XMLNodes集中的单个节点
  10. //int index;//XMLNodes集中,通过Item可以返回单个节点,index即为要返回的节点索引,第一个节点的索引值为1 
  11. vWordApp.OlePropertyGet("ActiveDocument"
  12.         .OleFunction("Range").OlePropertyGet("XMLNodes").OleFunction("Item", index); 

  总结:
  1、VB中添加对象的过程一般调用对象方法OleFunction,适用于没用参数的情况下;如果带有参数,需要调用对象过程OleProcedure。


  2、VB中使用对象的集合时,如果返回其中的单个对象,通过Item可以返回集中的单个对象。但集合要通过Range范围获取,否则系统会报错。

  用法

  1. (Variant)V.OleFunction("Range").OlePropertyGet("Sets").OleFunction("Item", index); 

  其中Sets代表要从中返回单个对象的集合。

 
  Range用到的时调用对象方法OleFunction。

 
  常见的集合有Documents、Tables、Cells、Rows、Columns、Lines、Workbooks、Worksheets、Fields、Bookmarks、XMLNodes。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值