Звоните веб-сервис в Excel
-
19-08-2019 - |
Вопрос
В модуле VBA в Excel 2007 можно ли вызвать веб-службу? Если да, то какие-нибудь фрагменты кода? Как добавить веб-ссылку?
Решение
Да, ты можешь!
Я работал над проектом, который сделал это (см. комментарий). К сожалению, примеров этого кода нет, но поиск в Google показал следующее:
Как интегрировать данные из нескольких веб-сервисов с помощью Excel и VBA р>
ШАГ ЗА ШАГОМ: Использование веб-сервисов через VBA (Excel или Word)
Другие советы
Вот обзор от MS:
Для получения обновленного ответа см. этот вопрос:
вызов веб-службы с использованием кода VBA в Excel 2010 а> р>
Обе темы должны быть объединены.
В Microsoft Excel Office 2007 попробуйте установить " Справочник по веб-сервисам " плагин. И используйте WSDL и добавьте веб-сервисы. И используйте следующий код в модуле, чтобы получить необходимые данные из веб-сервиса.
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