Chiama il servizio web in Excel
-
19-08-2019 - |
Domanda
In un modulo VBA in Excel 2007, è possibile chiamare un servizio Web? In tal caso, qualche frammento di codice? Come aggiungerei il riferimento web?
Soluzione
Sì, puoi!
Ho lavorato su un progetto che lo ha fatto (vedi commento). Sfortunatamente nessun esempio di codice da quello, ma google ha rivelato questi:
Come integrare i dati di diversi servizi Web utilizzando Excel e VBA
PASSO PASSO: utilizzo dei servizi Web tramite VBA (Excel o Word)
Altri suggerimenti
Ecco una panoramica di MS:
Per una risposta aggiornata, consultare questa domanda SO:
chiamando il servizio web usando il codice VBA in Excel 2010
Tuttavia, entrambi i thread dovrebbero essere uniti.
In Microsoft Excel Office 2007 prova a installare "Strumento di riferimento del servizio Web" collegare. E usa WSDL e aggiungi i servizi web. E usa il seguente codice nel modulo per recuperare i dati necessari dal servizio web.
Sub Demo()
Dim XDoc As MSXML2.DOMDocument
Dim xEmpDetails As MSXML2.IXMLDOMNode
Dim xParent As MSXML2.IXMLDOMNode
Dim xChild As MSXML2.IXMLDOMNode
Dim query As String
Dim Col, Row As Integer
Dim objWS As New clsws_GlobalWeather
Set XDoc = New MSXML2.DOMDocument
XDoc.async = False
XDoc.validateOnParse = False
query = objWS.wsm_GetCitiesByCountry("india")
If Not XDoc.LoadXML(query) Then 'strXML is the string with XML'
Err.Raise XDoc.parseError.ErrorCode, , XDoc.parseError.reason
End If
XDoc.LoadXML (query)
Set xEmpDetails = XDoc.DocumentElement
Set xParent = xEmpDetails.FirstChild
Worksheets("Sheet3").Cells(1, 1).Value = "Country"
Worksheets("Sheet3").Cells(1, 1).Interior.Color = RGB(65, 105, 225)
Worksheets("Sheet3").Cells(1, 2).Value = "City"
Worksheets("Sheet3").Cells(1, 2).Interior.Color = RGB(65, 105, 225)
Row = 2
Col = 1
For Each xParent In xEmpDetails.ChildNodes
For Each xChild In xParent.ChildNodes
Worksheets("Sheet3").Cells(Row, Col).Value = xChild.Text
Col = Col + 1
Next xChild
Row = Row + 1
Col = 1
Next xParent
End Sub