2009-05-05 13 views
1

私はいくつかのレポートを表示するWebページを持っています。 Excelのリンクをクリックすると、画面に表示されているすべてのデータがCSVファイルに保存され、Open、SaveまたはCancelのいずれかのファイルダウンロードウィンドウが開きます。WebページからExcelファイルをプログラムで保存する

ファイルダウンロードウィンドウが表示されずに、指定した場所にプログラムでダウンロードします。私はWindowsアプリケーションを使用しています。私はこのレポートを表示するウェブサイトのコードを持っていないので、データセットはありません。また、ページ上でビューソースを作成することで生成されるHTMLを調べましたが、データを取得するために実際にそれを掻き分けることはできません。

私は特定のウェブサイトから自分のコンピュータ上の場所にExcelファイルをダウンロードする方法を知る必要があります。事前に

おかげ

リタ

答えて

4

さてあなたは、適切なリンクまたはPOSTアクションを見つける必要があります。

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

などを認証する必要がある場合は、もう少し複雑になります。

0

Webブラウザーコントロール内にWebページを表示しているとします。 WebBrowser.Navigating Eventを処理して、WebBrowserNavigatingEventArgs URLプロパティの値を調べて、string.EndsWith( ".csv"、CurrentCultureIgnorecase)(またはより具体的なテスト)かどうかを確認できます。

クリックしたリンクがダウンロードするファイルのものであることが検出された場合、WebBrowserEventArgsインスタンスでe.Cancel()= Trueを呼び出して、ブラウザが正常に動作しなくなることを防ぐことができます。ファイルのダウンロードダイアログ。次に、.NETのHttpWebRequestおよびHttpWebResponseクラスを使用して、ファイルを手動でダウンロードできます。

Here's a sample of downloading using these classes

+0

私は、私の提案するHttpWebRequest/Responseではなく、WebClientクラスを使用するというJonのアドバイスを受けています。 WebClientは要求/応答オブジェクトをラップします。これらのシナリオでは、起動して実行するのがかなり簡単です。 – STW

0

実際に私は、画面スクレイピングをしていますので、私は、Webページを表示しておりません。

私が行ったことは、レポートが画面に表示されるURLに移動したことです。 「Excel」のハイパーリンクがあります。私は自分のプログラムからこのハイパーリンクをクリックします。このリンクをクリックすると、[ファイルのダウンロード]ダイアログボックスが開きます。

WebBrowser.NavigatingイベントとNavigatedイベントを記述しましたが、コントロールはここにはありません。任意のアイデア

1他のもの、私がアクセスしているサイトはjavaのウェブサイトです。

関連する問題