Скачать файл CSV с GitHub - PullRequest
       0

Скачать файл CSV с GitHub

0 голосов
/ 03 апреля 2020

Я пытаюсь загрузить CSV-файл и загрузить его на свой жесткий диск по ссылке GitHub. Вот моя попытка

#If Win64 Then
Private Declare PtrSafe Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As LongLong, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As LongLong, ByVal lpfnCB As LongLong) As LongLong
#Else
Private Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
#End If

Function DownloadFile(Url As String, SavePathName As String) As Boolean
DownloadFile = URLDownloadToFile(0, Replace(Url, "\", "/"), SavePathName, 0, 0) = 0
End Function

Sub Demo()
Dim strUrl As String, strSavePath As String, strFile As String

strUrl = "https://github.com/pcm-dpc/COVID-19/blob/master/dati-regioni/dpc-covid19-ita-regioni-20200224.csv"    'SharePoint Path For The File
strSavePath = ThisWorkbook.Path & "\"
strFile = "FileName" & Format(Date, "dd.mm.yyyy") & ".csv"

If DownloadFile(strUrl, strSavePath & strFile) Then
    MsgBox "File Saved To: " & vbNewLine & strSavePath
Else
    MsgBox "Unable To Download File:" & vbNewLine & strFile & vbNewLine & "Check URL String And That Document Is Shared", vbCritical
End If
End Sub

Я использовал этот код для загрузки некоторых файлов, и он работал хорошо, но по этой ссылке загруженный файл представляет собой страницу HTML, а не файл CSV. Как я могу скачать его как файл CSV?

Ответы [ 2 ]

4 голосов
/ 03 апреля 2020

Попробуйте выбрать параметр необработанного содержимого на этой странице. Ссылка, по которой вы переходите, имеет HTML разметку, другая - только содержимое CSV.

Option Explicit

Public Sub GetCSV()
    Dim response As String

    With CreateObject("MSXML2.XMLHTTP")
        .Open "GET", "https://raw.githubusercontent.com/pcm-dpc/COVID-19/master/dati-regioni/dpc-covid19-ita-regioni-20200224.csv", False
        .Send
        response = .responseText
    End With

    If Trim$(response) = "" Then Exit Sub

    Open "YOURPATHHERE\SOMEFILE.csv" For Output As #1
    Print #1, response
    Close #1

End Sub
2 голосов
/ 03 апреля 2020

это проще. cange адрес веб-сайта.

Sub test()
    Dim Whttp As WinHttp.WinHttpRequest
    Dim strFile As String, str As String
    Dim Url As String

    Set Whttp = New WinHttp.WinHttpRequest
    Url = "https://raw.githubusercontent.com/pcm-dpc/COVID-19/master/dati-regioni/dpc-covid19-ita-regioni-20200224.csv"   'SharePoint Path For The File
    strSavePath = ThisWorkbook.Path & "\"
    strFile = strSavePath & "FileName" & Format(Date, "dd.mm.yyyy") & ".csv"

    With Whttp
        .Open "Get", Url
        .send
        str = .responseText
    End With

    TransToCSV strFile, str


End Sub

Sub TransToCSV(myfile As String, strTxt As String)

    Dim objStream As Object


    Set objStream = CreateObject("ADODB.Stream")

    With objStream
        .Charset = "utf-8"
        .Open
        .WriteText strTxt
        .SaveToFile myfile, 2
        .Close
    End With
    Set objStream = Nothing

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...