システムでは、Excel ストリームが生成され、生成された Excel がユーザーにストリーミングされることがよくあります
が、
HTTP ヘッダーをクライアントに送信して Excel ストリームを送信することができ
ます
。
ファイルのダウンロード ダイアログ ボックスをクリックして開くと 2 回表示される主な理由は次のとおりです
(現在の推測ですが、正確な理由はまだ見つかっていません)
。
初めて開いたとき、Excel ストリームの一時ファイルはシステムにすでに存在します (ファイル拡張子のないファイルです)。元のファイルはありません (実際のファイルが存在するかどうかをユーザーに尋ねます)。一時ファイルをコンピュータの他の場所に保存します。 (サフィックス名がないことが関係していますか?)
2 回目は、クライアント ファイルの場所と、それを一時フォルダー以外の別の場所に保存するかどうかを選択します。
現在の解決策は、
エクスポートされたデータを提供するための新しいページを作成すること
です。
このページの Page_load に次のようなコードを記述します
private void Page_Load(object sender, System.EventArgs e)
{
//ここにユーザー コードを入力してページを初期化します
ReportRule reportRule=new ReportRule();
byte[] result= reportRule.RenderReport(HttpContext.Current.Server.UrlDecode(this.Request.QueryString["peportpath"]),Request.QueryString["id"]) // Excel ストリームを生成します。
HttpContext.Current.Response.ContentType = "application/vnd.ms-excel"
HttpContext.Current.Response.AppendHeader
("Content-disposition","attachment;filename=hahh.xls");
(結果
)
;