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

And*_*tel 15 rest excel vba excel-vba

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

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

Rob*_*zie 25

您可以在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
Run Code Online (Sandbox Code Playgroud)

我正在使用这个测试网站--JSONPlaceholder - 来调用RESTful API.这是回应:

在此输入图像描述

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

  • @DavidLeal-拥有JSON之后,您就可以解析/操作/更新工作表等-例如,请参见以下问题:/sf/ask/3504828141/ (2认同)

Dav*_*eal 7

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

  • 诚然,这个例子是一个使用 JIRA 的长而深入的例子,但它看起来涵盖了很多人们应该知道的东西。伟大的工作大卫。 (2认同)