Appeler le service Web en excel
4 réponses
Oui, Vous Le Pouvez!
j'ai travaillé sur un projet qui a fait cela (voir commentaire). Malheureusement aucun échantillon de code de celui-ci, mais googling a révélé ces:
comment intégrer les données de plusieurs services web en utilisant Excel et VBA
étape par étape: la consommation de services Web par VBA (Excel ou Word)
pour une réponse mise à jour, voir la question:
appel de service web à l'aide du code VBA dans excel 2010
les deux fils doivent être fusionnés cependant.
Dans Microsoft Office Excel 2007, essayez d'installer "Service Web Outil de Référence" du plugin. Et utilisez la WSDL et ajoutez les services web. Et utilisez le code suivant dans le module pour récupérer les données nécessaires à partir du web-service.
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