如何从Excel2003VBA调用WCF客户端?
如问题所述,如何从Excel2003VBA调用WCF客户端 我看到有一个地方,我可以调用web服务,但我通过谷歌搜索,我得到的所有结果都不可能从VBA调用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映射中。对我来说
我想在我对代码做任何事情之前知道应该使用什么方法,不想浪费时间,以后发现不可能这样做。我尝试了很长一段时间从excel vba调用一个基于SOAP的wcf服务,但没有任何运气
相反,我将服务更改为REST绑定(webHttpBinding)。这样,我就可以像加载任何其他xml文件一样将数据stright加载到xml映射中。对我来说效果很好,但我只是想导入一些数据。
至于肥皂;本文中的一个答案提到了Web服务工具包,以及我可以找到的所有建议使用的示例。我在使用中取得了有限的成功,但并非没有一些痛苦 请注意,Microsoft不支持此功能,并且有许多限制,可能使其不适合生产使用。例如,它不支持返回空集合的web服务:请参阅 如果你想走这条路,尽管它不受支持,下载工具包并在这里发布你遇到的任何问题
Microsoft建议使用VSTO,但这不容易与VBA集成…在这种情况下,我不会使用VSTO。COM互操作可能是最好的方式,只要您不希望SOAP消息中存在任何安全性
您可能希望了解如何使用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};