2011-07-29 8 views
2

このようなことはすべて、インターネットに接続する必要がないローカルイントラネット上で発生します。ボタンをクリックすると、Excelのファイルがダウンロードされます。

私はクエリを実行するデータベースを持っています。その後、ユーザーはスプレッドシートを作成/送信する「スプレッドシートをダウンロード」ボタンを押します。スプレッドシートの作成はうまくいきますが、多くの試みの後にファイルをダウンロードすることができません。 TransmitFileは、WriteFile関数はBinaryStreamのはリダイレクト

  • のJavascriptリダイレクト
    • 応答
      • を応答を改変/ヘッダーが
        • オブジェクト:ここで私が試したものです。書き込む(javas多くの場合CRIPTコード)

      、結果はExcelファイルが作成されていることですが、何のリダイレクト/ダウンロードは行われません。 Response.Redirect()の場合、Webサイトの場合はうまく動作しますが、file:///へのリダイレクトの場合は、スレッド例外がスローされますが、詳細は表示されません。

      私はそれがASP.NETドキュメントのライフサイクルと関係があると思っていますが、確かに知ることができるほどASP.NETで十分な経験はありません。

  • +0

    レスポンスにContentTypeがapplication/vnd.ms-excelに設定されていますか? – FlyingStreudel

    +0

    どのバージョンのASP.NET/.NETフレームワークを使用していますか? –

    +0

    はい、コンテンツの種類は、.NET 4 – Itskiddly

    答えて

    14
    FileInfo file = new FileInfo(PathToExcelFile); 
    if (file.Exists) 
    { 
        Response.Clear(); 
        Response.ClearHeaders(); 
        Response.ClearContent(); 
        Response.AddHeader("content-disposition", "attachment; filename=" + fileName); 
        Response.AddHeader("Content-Type", "application/Excel"); 
        Response.ContentType = "application/vnd.xls"; 
        Response.AddHeader("Content-Length", file.Length.ToString()); 
        Response.WriteFile(file.FullName); 
        Response.End(); 
    } 
    else 
    { 
        Response.Write("This file does not exist."); 
    } 
    
    +0

    これは私が最初に試したものですが、それを行うための '適切な'方法だと思われますが、Response.End()はスレッドの異常終了エラーをスローします。 – Itskiddly

    +0

    ええと...それは私のために働く制作システムからコピーしたコードです。なぜそれがあなたのために働いていないのだろうか。私はResponse.End()で何が起こっているのか把握しようとします。 –

    +0

    多分これを試してみてください:http://support.microsoft.com/kb/312629/ –

    -2
    ClientScript.RegisterStartupScript(GetType(), "hwa", "window.open('" + System.Configuration.ConfigurationManager.AppSettings["WebSite"].ToString() + "Document/SummaryReport/" + FileName + "','_blank');", true); 
    

    コードは、ボタンクリックでExcelファイルのダウンロードとなっているということです。 C#コードを使用してExcelファイルをダウンロードするのは簡単です。

    +0

    あなたの謝罪について詳しく説明できますか?コードのみの投稿では不十分です。 –

    関連する問題