استدعاء خدمة الويب في التفوق
-
19-08-2019 - |
سؤال
في وحدة VBA في Excel 2007، هل من الممكن الاتصال بخدمة ويب؟إذا كان الأمر كذلك، أي مقتطفات من التعليمات البرمجية؟كيف يمكنني إضافة مرجع الويب؟
المحلول
ونعم يمكنك!
وعملت على المشروع الذي فعل ذلك (انظر التعليق). للأسف لا يوجد نماذج التعليمات البرمجية من أن واحد، ولكن غوغلينغ كشف التالية:
كيف يمكنك دمج البيانات من عدة خدمات ويب باستخدام Excel و VBA أ >
<وأ href = "http://www.dotnetspider.com/resources/19-STEP-BY-STEP-Consuming-Web-Services-through-VBA-Excel-or-Word-Part-I.aspx" يختلط = "noreferrer"> STEP BY STEP: تستهلك خدمات الويب من خلال VBA (إكسل أو وورد)
نصائح أخرى
وفيما يلي لمحة عامة عن MS:
للحصول على إجابة محدثة، راجع سؤال SO هذا:
الاتصال بخدمة الويب باستخدام كود VBA في Excel 2010
بالرغم من ذلك يجب دمج كلا الموضوعين.
في مكتب مايكروسوفت اكسل 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