vb自动化下载文件使用.net



我有一个要求,我必须通过代码登录到网站,然后通过导航到某个位置下载报告文件。我已经成功登录,也到达了文件下载的URL,但无法自动保存到磁盘。下面是我的代码

Imports SHDocVw
Imports mshtml
Imports System.Net
 Module Module1
Dim HTMLDoc As HTMLDocument
Dim MyBrowser As InternetExplorer
Sub Main()
    MyGmail()
End Sub
Sub MyGmail()
    Dim MyHTML_Element As IHTMLElement
    Dim MyURL As String
    On Error GoTo Err_Clear
    MyURL = "https://example.com/"
    MyBrowser = New InternetExplorer
    MyBrowser.Silent = True
    MyBrowser.Navigate(MyURL)
    MyBrowser.Visible = True
    Do
    Loop Until MyBrowser.ReadyState = tagREADYSTATE.READYSTATE_COMPLETE
    HTMLDoc = MyBrowser.Document
    HTMLDoc.all.txtUserID.Value = "xyz@example.com" 'Enter your email id here
    HTMLDoc.all.txtPassword.Value = "test123" 'Enter your password here
   For Each MyHTML_Element In HTMLDoc.getElementsByTagName("input")
        If MyHTML_Element.Type = "submit" Then MyHTML_Element.click() : Exit For
    Next
    'Navigate to reports folder
    Dim newReportURL As String
    newReportURL = "https://some_static_url_to_navigate"
    MyBrowser.Navigate(newReportURL)
    Dim i As Integer
    Dim reportURL As String
    reportURL = ""
    i = 0
    For Each MyHTML_Element In HTMLDoc.getElementsByTagName("a")
        If DirectCast(MyHTML_Element, mshtml.IHTMLAnchorElement).innerText = "Export" And i = 1 Then
            reportURL = DirectCast(MyHTML_Element, mshtml.IHTMLAnchorElement).href
        End If
        If DirectCast(MyHTML_Element, mshtml.IHTMLAnchorElement).innerText = "Export" Then
            i = i + 1
        End If

    Next
    MyBrowser.Navigate(reportURL)
    For Each MyHTML_Element In HTMLDoc.getElementsByTagName("input")
        If MyHTML_Element.Type = "submit" Then
            MyHTML_Element.click() : Exit For
        End If
    Next

    Dim xlsReportURL As String
    xlsReportURL = DirectCast(MyBrowser.Document, mshtml.IHTMLDocument).url

Err_Clear:
    If Err.Number <> 0 Then
        Err.Clear()
        Resume Next
    End If
End Sub
 End Module

最后一个变量 xlsreportturl 包含我的报告url,它是。xls格式。如何将报告直接保存到硬盘上?

有一个方法DownloadFile()通过web客户端。你应该试着用它来代替BrowserControl

参见通过WebBrowser控件下载文件

最新更新