Appeler le service Web en excel

dans un module VBA dans excel 2007, est-il possible d'appeler un service web? Dans ce cas, les extraits de code? Comment ajouter la référence web?

24
demandé sur bluish 2009-01-24 01:49:47

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)

VBA: Consumer Soap Web Services

23
répondu Mostlyharmless 2014-11-19 14:35:33
6
répondu 2010-01-29 21:05:04

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.

3
répondu dgorissen 2017-05-23 11:44:21

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
1
répondu Adnan Shahmir Ahmed 2016-03-01 20:44:17