我们如何使用Excel宏(vba)中的restful API?

时间:2016-07-07 13:28:58

标签: excel excel-vba rest vba

是否有可用于从excel访问restful API的插件或库(可能使用宏),然后将响应存储在某处(可能在工作表中)。

原谅丢失的示例代码。我不是VBA程序员。

2 个答案:

答案 0 :(得分:13)

您可以在VBA中使用MSXML 库。然后你可以创建一个XMlHTTP请求并进行GET或POST等。下面是一个代码示例。它使用后期绑定,即不需要首先引用该库:

Option Explicit

Sub Test_LateBinding()

    Dim objRequest As Object
    Dim strUrl As String
    Dim blnAsync As Boolean
    Dim strResponse As String

    Set objRequest = CreateObject("MSXML2.XMLHTTP")
    strUrl = "https://jsonplaceholder.typicode.com/posts/1"
    blnAsync = True

    With objRequest
        .Open "GET", strUrl, blnAsync
        .SetRequestHeader "Content-Type", "application/json"
        .Send
        'spin wheels whilst waiting for response
        While objRequest.readyState <> 4
            DoEvents
        Wend
        strResponse = .ResponseText
    End With

    Debug.Print strResponse

End Sub

我正在使用此测试网站 - JSONPlaceholder - 来调用RESTful API。这是回复:

enter image description here

请注意,如果您a)发出同步请求,或者b)使用http而不是https,我发现使用此方法调用此网站会失败。

答案 1 :(得分:0)

Here,您可以找到使用REST API的详细示例,该示例用于从JIRA获取信息并将其加载到excel工作表中。带有宏的excel文件可以从帖子中下载。无论如何,它都包含每个步骤的详细说明,以防您出于特定目的自己动手做。在这里不值得重复。我一直在寻找类似的解决方案,到目前为止,这是我发现的唯一一篇涵盖该问题的文章。