我需要有一个vba宏,可将Podio应用程序中的数据下载到Excel工作表中。现在,我正在运行在Podio社区网站上找到的代码,我将其粘贴在下面:
Dim winHttpReq As Object
Dim access_token As String
Function ProjectsFromPodio()
Dim result As String
Dim postData As String
Dim myURL As String
Dim token_pos As Long
'Initialisierung
Set winHttpReq = CreateObject("WinHttp.WinHttpRequest.5.1")
myURL = "https://api.podio.com/oauth/token"
postData = "grant_type=app&app_id=ABC&app_token=DEF&client_id=GHI&client_secret=JKL"
If winHttpReq.Open("POST", myURL, False) = S_OK Then
'MsgBox ("Open successfull")
End If
winHttpReq.SetRequestHeader "Content-Type", "application/x-www-form-urlencoded"
winHttpReq.Send (postData)
result = winHttpReq.responseText
token_pos = InStr(result, "access_token")
access_token = Mid(result, token_pos + 15)
token_pos = InStr(access_token, Chr(34)) - 1
access_token = Mid(access_token, 1, token_pos)
OAuthAppAuthorization = result
'MsgBox (OAuthAppAuthorization)
Set winHttpReq = CreateObject("WinHttp.WinHttpRequest.5.1")
myURL = "https://api.podio.com/item/app/XYZ"
winHttpReq.Open "GET", myURL, False
winHttpReq.SetRequestHeader "Authorization", "OAuth2 " & access_token
winHttpReq.Send
result = winHttpReq.responseText
'MsgBox (result)
End Function
这很好用,数据已下载,我可以使用它。我的问题是如何以CSV格式而不是JSON格式下载此数据?有可能吗?
如果不可能,如何以一种聪明的方式将其解析为一张纸?
感谢您的帮助
答案 0 :(得分:0)
您可以向POST
发送/item/app/{app_id}/export/{exporter}
请求,该请求将创建用于导出项目的批处理。
在这里,您可以将项目导出为 xls 和 xlsx 格式。
您的myURL
必须像
myURL = "https://api.podio.com/item/app/XYZ/export/xls"
由于此请求,您将获得一个batch_id。
然后对GET
进行/batch/{batch_id}
调用以获取批次的status
。您可以使用批处理响应中的GET
向/file/{file_id}
发出podio_file_id
请求,来下载输出xls文件。
参考