[英]Downloading zip file from website using excel vba (if also able to extract the csv from zip file and open it in excel, then even better)
经过一番搜索,我无法制作一个可以从特定网站下载.zip文件的宏。 我的意思是我已经能够找到类似的问题但是无法应用必要的更改以便解决我的问题。 包含zip文件的网站是: https ://nio.gov.si/nio/data/prvic+registrirana+vozila+v+letu+2014+po+mesecih,在表头“Priponke”下面是文件。 例如:2014年12月(959 kb),2014年11月(1061 kb),... 2014年12月下载zip文件的网址是“cms / download / document / a7605005b6879fe5f7dbab6d60d4ae787dbced6b-1422453741279”。 我提前感谢你,等待你的回复。
我目前的代码是:
Public Sub DownloadFile()
Dim objWHTTP As Object
Dim strPath As String
Dim arrData() As Byte
Dim lngFreeFile As Long
On Error Resume Next
Set objWHTTP = CreateObject("WinHTTP.WinHTTPrequest.5")
If Err.Number <> 0 Then
Set objWHTTP = CreateObject("WinHTTP.WinHTTPrequest.5.1")
End If
On Error GoTo 0
strPath = "https://nio.gov.si/nio/data/prvic+registrirana+vozila+v+letu+2014+po+mesecih"
strPath = "https://nio.gov.si/nio/cms/download/document/a7605005b6879fe5f7dbab6d60d4ae787dbced6b-1422453741279"
objWHTTP.Open "GET", strPath, False
objWHTTP.send
arrData = objWHTTP.responseBody
If Len(Dir("C:\FootieFile", vbDirectory)) = 0 Then
MkDir "C:\FootieFile"
End If
lngFreeFile = FreeFile
Open "C:\FootieFile\MyFile.xml" For Binary Access Write As #lngFreeFile
Put #lngFreeFile, 1, arrData
Close #lngFreeFile
Set objWHTTP = Nothing
Erase arrData
End Sub
亲切的问候
您需要下载二进制文件并保存。 这可以使用MSXML2.XMLHTTP60对象进行下载,并使用ADODB.Stream对象进行保存。
参见例如http://www.motobit.com/tips/detpg_read-write-binary-files/
我成功地使用它从服务器下载JPG文件并在MS Access前端显示它们。
此外,我希望你意识到你不能用'cms'开始你的网址,因为你需要完全合格的域名加资源(又名http:// etc)
还要小心unicode数据。 为此,您可能需要使用StrConv()。 下载后检查文件的大小是否与服务器上的大小相同。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.