Excelファイルのダウンロードについて

解決


kuromaku  2004-09-15 19:31:59  No: 116305

いつも参考にさせていただいています。

VisualBasic.NETでASPを開発しています。Webフォームのボタンをクリックすると、サーバー側でExcel帳票の雛形にDBから取得した値を書き込み、それをダウンロード(Content-dispositionはattachment)させるという処理を作成したいのですが、この条件(Excel帳票の雛形を使用すること)で、

ファイルを物理的にディスクに書き込まずに(ファイルを生成せずに)、ダウンロードさせることは可能でしょうか?

また、仮にできないとして、ダウンロード後にファイルを消去するという方法を取る場合、どのタイミングでどのようなで消去するのが妥当でしょうか?(できればディスクにファイルをためたくないため)

似たような経験をされた方おりませんでしょうか?


マグ  2004-09-15 23:03:34  No: 116306

作ったデータファイルなどへのパスを取っておき、
閉じるときそのパスを使って、ファイルを削除するようにしてみてはどうでしょうか。


kuromaku  2004-09-16 00:34:06  No: 116307

マグさん、ありがとうございます。

やはりファイルを作成しないとExcelのダウンロードは無理のようなので、一旦保存してからダウンロードするようにしたいと思います。

ファイルの消去に関しても、Session_End、及びApplication_Endのタイミングでで消去するようにしたいとおもいます。

ありがとうございました。


葉月  2004-09-16 01:02:03  No: 116308

環境的にはWANなんでしょうかね

LANだったらサーバがファイル作成のお仕事やるなら
共有フォルダ作って
一緒にこちらのパス(コンピュータ名とフォルダ名)をサーバに渡してあげて

サーバのお仕事の最後にSAVEでそのパスに書き込めば
できるような気もしないような事も無いが
要は実態をサーバに作ってダウンではなく
実態を直接ローカルに作成させるということ


36NET  2004-09-16 02:04:28  No: 116309

.netじゃないソースですが

Const adTypeBinary = 1
Dim objStream  '= As ADODB.Stream
Dim vData        '= As Byte
Dim objFile

Set objStream = CreateObject("ADODB.Stream")
With objStream
  .Type = adTypeBinary
  .Open
  .LoadFromFile "C:\**\**.xls"
  vData = .Read(-1)
  .Close
End With

Set objStream = Nothing

Set objFile = Server.CreateObject("Scripting.FileSystemObject")
objFile.DeleteFile "C:\**\**.xls"
Set objFile = Nothing

Response.ContentType = "application/x-download"
Response.AddHeader "Content-Disposition" , " attachment; filename=**.doc"
Response.BinaryWrite vData

こんなやり方が個人的にはベストかなと?


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加