- - PR -
CSVファイルを一度に複数出力したい
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2003-11-21 19:39
いつも勉強させてもらっています。よろしくお願いします。
言語C# ASP.NetでWebアプリケーションを開発しています。 CSV出力をすることはできるのですが、一度に複数のCSVファイルを出力できずに困っています。具体的に言うと、 AA BB CC というデータのリストがあったとして、それを AA.CSV BB.CSV CC.CSV という風に、複数のファイルに分割して出力したいのです。 以下の方法では一つのファイルしか出力できないので困っています Response.Clear(); Response.AddHeader("Content-position","attachment;filename=test.csv"); Response.AddHeader("media-type","application/octet-stream"); System.Text.Encoding enc = System.Text.Encoding.GetEncoding("Shift-JIS"); Response.BinaryWrite(enc.GetBytes("A,B,C,D,E,F")); Response.End(); ↑ の処理をループするようなイメージです わかる方いらっしゃいましたらご教授よろしくお願い致します。 | ||||
|
投稿日時: 2003-11-22 00:18
どもです。
私も以前同じなやみにぶち当たりました。 結局方法がわからずに、結局無理でした・・・。 果たして出来るのでしょうか・・・? 意味の無いレスですみません。 | ||||
|
投稿日時: 2003-11-22 12:56
こんにちは〜
1度でもResponseを終了させたら、そこまでしかクライアント側では認識できないです。 なので、ダウンロードするファイルの分だけ画面を開くしかないと思います。
| ||||
|
投稿日時: 2003-11-23 00:50
みなさんご返答ありがとうございます。
やはり画面を繰り返し開くしかないのでしょうか?なにか別の方法で対処したいと思います。貴重なご意見ありがとうございました。 | ||||
|
投稿日時: 2003-11-25 11:51
ども、ほむらです。
詳しいやり方はあまり公にはしないほうがいい気がするので答えだけ・・・ 一つのページで複数のファイルをダウンロードすることは可能です。 詳細はRFC2822(Internet Message Fromat)を読んでください。 これは、メールに限ったフォーマットではありません。。 といっても、IEの場合MIMEタイプを無視してしまうので。。。 もしかしたらそのまま表示してしまうかも^^;;;; 和ジラではちゃんと複数ファイル転送できましたよ。 #もう一つ追記 #RFC2046(Multipurpose Internet Mail Extensions Media Type)も重要みたいです。 #というかこっちが本命ですね(笑 [ メッセージ編集済み 編集者: ほむら 編集日時 2003-11-25 14:11 ] | ||||
|
投稿日時: 2003-11-25 14:24
あまりいい方法では無いのかもしれませんが・・・
僕の場合は 1.hiddenコントロールをrunat=serverでページに配置して、 2.サーバ側で生成したファイルのURLをセットし、 3.onload時にhiddenコントロールに値が入っていたらそのURLを新しいWindowで表示し 値をクリアするjavascriptを書く ことで対処していたりします。 | ||||
|
投稿日時: 2003-11-25 15:28
こんにちは、Ru.Fと申します。
(1)DBなどから取得したリストを各CSVに分類して保存する (2)作成したCSVをクライアント側に1アクションで取得する 以上で間違いないでしょうか。 違っていたらごめんなさい。 CSVファイルをサーバ内に作成、クライアント側のJavaScriptにより サーバ内のCSVファイルを呼ぶ形で(1)(2)はクリアできます。 しかし、画面を複数開くのは好ましくないようですので 的外れかもしれません。 いったんデータをローカルに保持させるにしても 別の方法を探されたほうが良いと思います。
|
1