从 MS Excel 消费 Web 服务






2.86/5 (17投票s)
2003年9月1日
2分钟阅读

147769

1299
如何从 Microsoft Excel 访问 Web 服务
引言
Web 服务是可重用的应用程序,它公开了一个可以通过互联网访问的接口。Web 服务使用 XML 提供平台和语言无关的分布式应用程序服务和信息实现。
Web 服务允许我们利用其他组织提供的服务。我们可以从使用各种编程语言开发的应用程序以及 Microsoft Office 工具(如 Access、Excel 和 Word 等)中调用 Web 服务。 在本文中,我们将探讨如何使用 Microsoft Office XP Web Services Toolkit 2.0 从 Microsoft Excel 访问 Web 服务,该工具包简化了访问和利用 XML Web 服务的流程。
详细说明
该示例包含一个 Web 服务,它返回 5 个国家及其首都。Capitals.xls 包含 2 个按钮。 当用户单击“显示”按钮时,Capitals.xls 工作表将访问 Web 服务并显示 Web 服务提供的数据。 单击“清除”按钮将清除 XL 工作表中的数据。
现在让我们看看如何开发这个应用程序。 首先创建一个 Excel 工作表。 从 Visual Basic 工具箱中拖放一个按钮。(您可以在“视图”菜单中找到 VB 工具箱)。 现在添加对 Web 服务的引用。为此,我们将使用 VB 编辑器(Alt-F11)。 从工具菜单栏中添加 Microsoft Soap 工具包的引用。 现在让我们添加 Web 服务引用。为此,单击 VB 编辑器工具菜单中的“Web 引用”。 您可以搜索 Web 服务,或者如果您知道 Web 服务的 URL,可以直接添加它。 现在您就可以访问 Web 服务了。 我们可以通过创建 Web 服务类的对象并在 Excel 工作表中显示结果来做到这一点。
Dim module As clsws_Service1
Dim value As String
Dim data() As String
Dim range1 As Range
Dim range2 As Range
Dim j As Integer
Set module = New clsws_Service1
value = module.wsm_getCapitals()
data = Split(value)
j = 0
Application.ActiveSheet.Range("A4").Activate
Set range1 = Range(Range("A4"), Range("A22"))
For Each range2 In range1
If j < 9 Then
range2.Offset(0, 3).value = data(j)
range2.Offset(0, 4).value = data(j + 1)
j = j + 2
End If
Next range2