clwprogrammer
Это может быть не совсем то, что вы ищете, но дайте этому шанс.
Используйте эти импортные данные
Imports System
Imports System.Net
Imports System.ComponentModel
Поместите внутри класса form, где у вас есть элемент управления webbrowser, где 'WebBrowser1' - это имя вашего элемента управления WebBrowserPrivate WithEvents downloadClient As WebClient
Private Sub WebBrowser1_Navigating(sender As Object, e As WebBrowserNavigatingEventArgs) Handles WebBrowser1.Navigating
If e.Url.Segments(e.Url.Segments.Length - 1).EndsWith("xlsx") Then
e.Cancel = True
Dim filepath As String
Dim sd As New SaveFileDialog()
sd.Filter = "Excel Workbook Files|*.xlsx"
sd.FileName = e.Url.Segments(e.Url.Segments.Length - 1)
If sd.ShowDialog() = DialogResult.OK Then
filepath = sd.FileName
downloadClient = New WebClient
'downloadclient.DownloadFileCompleted = client_downloadComplete()
downloadClient.DownloadFileAsync(e.Url, filepath)
'store the file path here for later use
Me.Text = filepath
End If
sd.Dispose()
End If
End Sub
Private Sub downloadClient_DownloadFileCompleted(sender As Object, e As AsyncCompletedEventArgs) Handles downloadClient.DownloadFileCompleted
MsgBox("File Downloaded - a")
End Sub
Private Sub downloadClient_DownloadProgressChanged(sender As Object, e As DownloadProgressChangedEventArgs) Handles downloadClient.DownloadProgressChanged
ProgressBar1.Maximum = e.TotalBytesToReceive
ProgressBar1.Value = e.BytesReceived
Application.DoEvents()
End Sub
источник, который я нашел, находится в c#(помечен как выбранный ответ):
https://stackoverflow.com/questions/15419632/download-a-file-through-the-webbrowser-controlРедактировать... Заметил небольшую ошибку в которой я забыл инициализировать объект WebClient
Редактировать 2... Вам нужно использовать DownloadFileAsync, чтобы вы могли использовать обновления пользовательского интерфейса в случае, если вы хотите показать какой-то диалог прогресса. Кроме того, добавлен пример progressbar.
Member 14685181
Спасибо за ответ. Я попробовал что-то вроде этого (без индикатора выполнения, это скользко). Это был тот метод, который я хотел использовать, но, к сожалению, я не думаю, что WebClient будет работать по нескольким причинам. Но в основном потому, что нет URL-адреса к файлу. Возвращаемый URL-адрес относится к странице, которая создает файл, а не к файлу.
Как работает веб-страница, пользователь делает несколько выборок на странице и нажимает кнопку "Запустить отчет". Затем веб-страница использует выбранные параметры для запроса базы данных и возвращает результаты в формате xlsx загрузки.