将 Excel 连接到 CouchDB

问题描述

我正在尝试从 CouchDB 数据库中检索一些数据并将它们显示在 Excel 工作表中。

我发现了一个很老的话题 here,PowerQuery 仍然是最好的选择吗?

解决方法

您可以使用 VBA 和基本身份验证。

示例:

Public Sub getDataFromCouchdb()
    Dim objHTTP As Object,JSON As Object
    Set objHTTP = CreateObject("Microsoft.XmlHttp")
    
    user = "username"
    pass = "password"
    
    URL = "https://examples.com:5984/dbname/doc_id"
    objHTTP.Open "GET",URL,False
    objHTTP.setRequestHeader "User-Agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
    objHTTP.setRequestHeader "Content-Type","application/json; charset=utf-8"
    objHTTP.setRequestHeader "Authorization","Basic " + Base64Encode(user + ":" + pass)
    
    objHTTP.send ("")
    
    Debug.Print objHTTP.responseText
    Sheets("Plan1").Cells(10,10).Value = objHTTP.responseText
    
    Set JSON = JsonConverter.ParseJson(objHTTP.responseText)
    Debug.Print JSON("_id")
    Sheets("Plan1").Cells(10,11).Value = JSON("_id")

End Sub

要解析 JSON,您可以使用此库:

https://github.com/VBA-tools/VBA-JSON

需要这个其他库:

https://github.com/VBA-tools/VBA-Dictionary