Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从Excel2003VBA调用WCF客户端?_Wcf_Web Services_Vba_Excel - Fatal编程技术网

如何从Excel2003VBA调用WCF客户端?

如何从Excel2003VBA调用WCF客户端?,wcf,web-services,vba,excel,Wcf,Web Services,Vba,Excel,如问题所述,如何从Excel2003VBA调用WCF客户端 我看到有一个地方,我可以调用web服务,但我通过谷歌搜索,我得到的所有结果都不可能从VBA调用WCF客户端 我想在我对代码做任何事情之前知道应该使用什么方法,不想浪费时间,以后发现不可能这样做。我尝试了很长一段时间从excel vba调用一个基于SOAP的wcf服务,但没有任何运气 相反,我将服务更改为REST绑定(webHttpBinding)。这样,我就可以像加载任何其他xml文件一样将数据stright加载到xml映射中。对我来说

如问题所述,如何从Excel2003VBA调用WCF客户端

我看到有一个地方,我可以调用web服务,但我通过谷歌搜索,我得到的所有结果都不可能从VBA调用WCF客户端


我想在我对代码做任何事情之前知道应该使用什么方法,不想浪费时间,以后发现不可能这样做。

我尝试了很长一段时间从excel vba调用一个基于SOAP的wcf服务,但没有任何运气

相反,我将服务更改为REST绑定(webHttpBinding)。这样,我就可以像加载任何其他xml文件一样将数据stright加载到xml映射中。对我来说效果很好,但我只是想导入一些数据。


至于肥皂;本文中的一个答案提到了Web服务工具包,以及我可以找到的所有建议使用的示例。

我在使用中取得了有限的成功,但并非没有一些痛苦

请注意,Microsoft不支持此功能,并且有许多限制,可能使其不适合生产使用。例如,它不支持返回空集合的web服务:请参阅

如果你想走这条路,尽管它不受支持,下载工具包并在这里发布你遇到的任何问题


Microsoft建议使用VSTO,但这不容易与VBA集成…

在这种情况下,我不会使用VSTO。COM互操作可能是最好的方式,只要您不希望SOAP消息中存在任何安全性

  • 使用必要的绑定编写WCF客户端
  • 为COM互操作公开程序集
  • 在Excel VBA中引用公开的程序集

  • 您可能希望了解如何使用WCF服务名字对象,该名字对象允许您从VBA调用WCF服务,而无需在Excel客户端计算机上安装.NET Framework以外的任何东西

    Dim addr As String
    addr = "service:mexAddress=""net.tcp://localhost:7891/Test/WcfService1/Service1/Mex"","
    addr = addr + "address=""net.tcp://localhost:7891/Test/WcfService1/Service1/"","
    addr = addr + "contract=""IService1"", contractNamespace=""http://tempuri.org/"","
    addr = addr + "binding=""NetTcpBinding_IService1"",bindingNamespace=""http://tempuri.org/"""
    
    Dim service1 As Object
    Set service1 = GetObject(addr)
    
    MsgBox service1.GetData(12)
    
    我写了一封信


    /Damian

    调用web服务的代码是什么样的?它应该不会有太大的不同,但我不确定。如果谷歌没有告诉你如何从Excel调用web服务,那么Excel文档或在线资源可能会告诉你。你想使用WCF客户端的原因是什么?远程服务是什么样子的?它是否使用安全、事务、排队?从VBA中使用MSXML可能更简单,具体取决于目标服务。@wongtatseng:你的意思是希望Excel调用WCF客户端或WCF服务吗?Damian,你能将一个primative数组传递给你的WCF servcie方法吗?我不记得了,但是我传递了一个变量数组——可能只是把原语值放在那里:返回新对象[]{123456789};