我们在现有的ASP.NET网站中有一个Web服务,当通过其他ASP.NET位访问时,它可以正常工作。我想让Excel 2007和2003调用w-s并使用VBA刷新工作表的一部分。
理想情况下,我希望能够使用香草版的Excel(即不需要客户端安装额外的位)。
作为首发(2007年),我尝试了数据 - >获取外部数据 - >来自网络。指出: http://myhost/myvirtdir/ABCInfoWS.asmx?WSDL&op=testwebservice1
Stuff出现在Excel中(虽然'指定的XML源不引用模式'消息)但事实证明它实际上是对同一WSDL下提供的所有Web服务的描述
有人能告诉我如何通过VBA从 testwebservice 获取数据吗?
答案 0 :(得分:0)
从上面的URL中删除?WSDL部分。
编辑:您的网络服务返回什么?
Excel的数据 - > Import Data期望使用tr& amp; td获取数据。
如果您的Web服务返回XML,它也应该可以正常工作。
答案 1 :(得分:0)
很抱歉,事实证明我无法通过评论提供足够的信息。当我选择SOAP 2和XML时,这就是Excel中出现的内容:
只是回应你的编辑,我的w-s返回XML,这就是它的样子 - 它不包含tr / td,因为它以前被用作“真正的”web服务。
我已经意识到我根本没有得到实际的数据,而是描述了网络服务提供的数据 - 我想我的网址仍然有点不合适?
<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
<soap12:Body>
<GetBookJobStatusResponse xmlns="http://www.protecttheguilty.com/">
<GetBookJobStatusResult>
<BookJobStatus>
<JobStatus>string</JobStatus>
<JobType>string</JobType>
<RequestTime>dateTime</RequestTime>
<StartTime>dateTime</StartTime>
<EndTime>dateTime</EndTime>
<PathToOutput>string</PathToOutput>
</BookJobStatus>
<BookJobStatus>
<JobStatus>string</JobStatus>
<JobType>string</JobType>
<RequestTime>dateTime</RequestTime>
<StartTime>dateTime</StartTime>
<EndTime>dateTime</EndTime>
<PathToOutput>string</PathToOutput>
</BookJobStatus>
</GetBookJobStatusResult>
</GetBookJobStatusResponse>
</soap12:Body>
</soap12:Envelope>