VBA调用WebService
2013-07-29 16:13
721 查看
引言:
最近做了个Excel调用WebService数据集并显示和打印的工具,在网上没查到相关资料,抠出以下方法,希望it's useful。
前奏:
要在Excel中调用Web服务,首先需要安装微软工具Office Web Service Toolkit,傻瓜式安装。
第二步就要添加WebService引用,以中文版Office2010为例,Alt+F11,进入VBA界面,选择[工具]->[引用],勾选"Microsoft XML, v6.0",如下图所示。
第三步就是添加你需要调用的WebService服务了。选择[工具]->[Web服务引用],勾选"Web服务URL",然后将URL录入搜索并添加即可。
此步完成后,在工程视图的类模块下会出现"clsws_"开后的类文件,双击看下,正是我们所需要个方法(Happy一下)。当然这些操作在网上也是很常见的。
单返回值的调用:
如果Web服务返回单个数据,调用方法较为简单,代码如下,3行足以。
返回单条数据集:
因为我的Web服务是基于C#写的,返回DataTable之类的数据集无法被VBA解析,没办法,只能想辙变通一下。
我的解决方案是返回一个实体类,把数据集的各项转换成VBA所需的item子项。
先把实体类代码发出来,
接下来就是此随笔的关键点了,VBA的调用。
是的,通过Object.Item来访问数据集中的各参数。
关于返回多条数据集,还未测试。
最近做了个Excel调用WebService数据集并显示和打印的工具,在网上没查到相关资料,抠出以下方法,希望it's useful。
前奏:
要在Excel中调用Web服务,首先需要安装微软工具Office Web Service Toolkit,傻瓜式安装。
第二步就要添加WebService引用,以中文版Office2010为例,Alt+F11,进入VBA界面,选择[工具]->[引用],勾选"Microsoft XML, v6.0",如下图所示。
第三步就是添加你需要调用的WebService服务了。选择[工具]->[Web服务引用],勾选"Web服务URL",然后将URL录入搜索并添加即可。
此步完成后,在工程视图的类模块下会出现"clsws_"开后的类文件,双击看下,正是我们所需要个方法(Happy一下)。当然这些操作在网上也是很常见的。
单返回值的调用:
如果Web服务返回单个数据,调用方法较为简单,代码如下,3行足以。
Dim ExampleVar As New clsws_GetCWBCPInfo Dim strCWBNo As String strCWBNo = ExampleVar.wsm_GetCWBNoForAustraliaLine("CAN", iCount)
返回单条数据集:
因为我的Web服务是基于C#写的,返回DataTable之类的数据集无法被VBA解析,没办法,只能想辙变通一下。
我的解决方案是返回一个实体类,把数据集的各项转换成VBA所需的item子项。
先把实体类代码发出来,
namespace Entity { public class TB_CWB { public string cwb_no {get;set;} ...... public string Cnee_Address_JP {get;set;} public void SetProperty(DataRow dr) { cwb_no = dr["cwb_no"].ToString(); ...... Cnee_Address_JP = dr["Cnee_Address_JP"].ToString(); } }
接下来就是此随笔的关键点了,VBA的调用。
Dim cwbInfo As Object Dim WS_GETCWBCPInfo As New clsws_GetCWBCPInfo cwbInfo = WS_GETCWBCPInfo.wsm_GetCWBLabelInfoByJPCom(custBillNo, portName) cwb_no = cwbInfo.Item(0).Text ori = cwbInfo.Item(1).Text pcs = cwbInfo.Item(2).Text consignee_postcode = cwbInfo.Item(3).Text Sagawa_POSTCODE1 = cwbInfo.Item(4).Text
是的,通过Object.Item来访问数据集中的各参数。
关于返回多条数据集,还未测试。
相关文章推荐
- 通过URL传参调用webservice(转)
- JS调用WebService
- WebService大讲堂之Axis2(8):异步调用WebService
- 在android中调用webservice
- VS 2008 mfc 智能应用程序 调用 C# webservice.(二)(gsoap+wince)
- java调用webservice接口服务端接收参数为空
- WebService 调用服务器上exe应用程序
- android 调用webservice 图片上传
- 使用C#创建webservice及三种调用方式
- stub调用WebService
- Ajax 跨域调用 webservice
- 使用CXF发布和调用webService(不使用Spring)
- ajax调用webService
- java 调用webservice的各种方法总结
- jQuery调用WebService返回JSON数据
- Java 调用CXF webService 接口
- C#下调用WebService的权限认证问题
- .动态调用WebService(C#)
- 动态调用 WebService的代理类
- 采用axis框架,进行webservice接口开发、调用时,http://127.0.0.1:8080/TestService/services/TestService?wsdl即wsdl的xml文件