Программное сохранение файла Excel с веб-страницы - PullRequest
1 голос
/ 05 мая 2009

У меня есть веб-страница, на которой отображается отчет. Когда я нажимаю на ссылку для Excel, она помещает все данные, отображаемые на экране, в файл CSV и открывает окно загрузки файла, в котором можно открыть, сохранить или отменить.

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

Следовательно, мне нужно знать, как загрузить файл Excel с данного веб-сайта в папку на моем компьютере.

Заранее спасибо

Rita

Ответы [ 3 ]

4 голосов
/ 05 мая 2009

Ну, вам нужно найти соответствующую ссылку или опубликовать действие. Затем вы можете использовать что-то вроде:

string url = "http://whatever/.../foo.xsl";
string target = @"c:/excel documents/foo.xsl";
WebClient client = new WebClient();
client.DownloadFile(url, target);

Это все немного сложнее, если вам нужно аутентифицироваться и т. Д.

0 голосов
/ 05 мая 2009

На самом деле я делаю очистку экрана, поэтому не отображаю веб-страницу.

То, что я сделал, перешло к URL, где отчет отображается на экране Существует гиперссылка на «Excel». Я делаю эту ссылку гиперссылки из самой моей программы. При нажатии на эту ссылку открывается диалоговое окно «Загрузка файла».

Я написал, события WebBrowser.Navigating и Navigated, но управление здесь не приходит. Любые идеи

Еще одна вещь, сайт, на который я захожу, - это сайт Java.

0 голосов
/ 05 мая 2009

Я предполагаю, что вы показываете веб-страницу в элементе управления WebBrowser. Вы можете обработать событие WebBrowser.Navigating и проверить значение свойства URL WebBrowserNavigatingEventArgs , чтобы увидеть, если строка.EndsWith (". Csv", CurrentCultureIgnorecase) (или, возможно, более конкретный тест) ).

Если вы обнаружите, что ссылка, по которой вы щелкнули, предназначена для файла, который вы хотите загрузить, вы можете вызвать e.Cancel () = True для экземпляра WebBrowserEventArgs, чтобы не дать браузеру продолжить нормальное поведение открытия файла. Скачать диалог. Затем вы можете использовать классы .NET HttpWebRequest и HttpWebResponse для ручной загрузки файла.

Вот пример загрузки с использованием этих классов

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