出来るのだASP Q&A掲示板(過去LOG)
訪問数 52046
昨日 889
今日 776 【PR】 パソコン入門からIT専門書まで幅広く取り揃えています。セブン-イレブン受取り手数料無料のセブンアンドワイ。 |
![]() ![]() ![]() ![]() ![]() |
![]() ![]() |
![]() ![]() ![]() ![]() ![]() ![]() |
[2236] csvファイルのダウンロードについて |
投稿者:爽聞茶さん 2002/06/26 19:52:59 |
はじめまして聞茶です。 とても分かりやすく勉強になるサイトですね。 いつも楽しく勉強させていただいてます。 今、SQLで抽出したテーブルをHTMLに表示し、csvでダウンロードするということをやっているんですが、ファイルを作成後開いてみるとHTMLタグで作成され、最後の方にcsvがキチンとできているという状態で困っています。 HTMLタグ構成部分をあらかじめ作成しないようにするにはどうすればいいんですか? csvファイルを作成するソースを下記に書いておきますので、お分かりになる方、アドバイスを頂ければ幸いです。 宜しくお願いします! Response.Buffer = True Response.ContentType = "application/binary" Response.ContentType = "text/csv" Response.AddHeader "Content-Disposition","attachment; filename=karikeiyaku.csv" Response.Write "仮契約一覧" & Chr(13) & Chr(10) buf1 = "管理No" & "," buf1 = buf1 & "客先名" & "," buf1 = buf1 & "契約種別" & "," buf1 = buf1 & "契約内容" & "," buf1 = buf1 & "開発担当部署" & "," buf1 = buf1 & "開発担当者" & "," buf1 = buf1 & "作業部署" & "," buf1 = buf1 & "作業担当者" & "," buf1 = buf1 & "契約開始日" & "," buf1 = buf1 & "見積提示" & "," buf1 = buf1 & "見積金額" & "," buf1 = buf1 & "備考" & Chr(13) & Chr(10) Response.Write(buf1) oRset.MoveFirst Do while not oRset.EOF buf1="" buf1 = oRset(0) & "," buf1 = buf1 & oRset(1) & "," buf1 = buf1 & oRset(2) & "," buf1 = buf1 & oRset(3) & "," buf1 = buf1 & oRset(4) & "," buf1 = buf1 & oRset(5) & "," buf1 = buf1 & oRset(6) & "," buf1 = buf1 & oRset(7) & "," buf1 = buf1 & oRset(8) & "," buf1 = buf1 & oRset(9) & "," buf1 = buf1 & oRset(10) & "," buf1 = buf1 & oRset(11) & Chr(13) & Chr(10) Response.Write(buf1) oRset.MoveNext Loop oRset.Close: Set oRset = Nothing |
[2238] Re:csvファイルのダウンロードについて |
投稿者:北岳さん 2002/06/27 9:19:18 |
ご提示のソースでCSVができEXCELから正常に開くので、質問内容が意味不明、と思いましたが、 はは〜ん、さては。 質問段階で省略した何かが、元ソースの途中に書かれているのでは。 (以下、簡単のため、DBを使わないよう改変しています) ------------------1.asp---------------- <% Response.Buffer = True Response.ContentType = "application/binary" Response.ContentType = "text/csv" Response.AddHeader "Content-Disposition","attachment; filename=karikeiyaku.csv" Response.Write "仮契約一覧" & Chr(13) & Chr(10) '----最初はこのまま実行し、次に以下の4行を削除してから実行してみて下さい。 %> <html><body> <p>余計なHTMLタグ <% '----ここまで buf1 = "管理No" & "," buf1 = buf1 & "客先名" & "," buf1 = buf1 & "契約種別" & "," buf1 = buf1 & "契約内容" & "," buf1 = buf1 & "開発担当部署" & "," buf1 = buf1 & "開発担当者" & "," buf1 = buf1 & "作業部署" & "," buf1 = buf1 & "作業担当者" & "," buf1 = buf1 & "契約開始日" & "," buf1 = buf1 & "見積提示" & "," buf1 = buf1 & "見積金額" & "," buf1 = buf1 & "備考" & Chr(13) & Chr(10) Response.Write(buf1) for i=1 to 100 buf1="" for j=0 to 11 buf1 = buf1 & i*j & "," next buf1 = buf1 & Chr(13) & Chr(10) Response.Write(buf1) next %> |
[2239] Re:csvファイルのダウンロードについて |
投稿者:爽聞茶さん 2002/06/27 10:23:25 |
おはようございます。爽聞茶です。 北岳さんレスを頂きありがとうございました。 質問が意味不明でしたね、すみませんでした。 SQLで条件抽出し、aspファイルに結果を<TABLE>タグを使用して表示させています。行頭にはダウンロードボタンをつけています。 ____ |ダウンロード| ________________________________________________________ 管理No|客先名|契約種別|契約内容|開発担当部署|開発担当者〜  ̄ ̄ ̄ ̄| ̄ ̄ ̄ | ̄ ̄ ̄ ̄| ̄ ̄ ̄ ̄ | ̄ ̄ ̄ ̄ ̄ ̄ | ̄ ̄ ̄ ̄ ̄ 00001 |A社 |AAA |1ヶ月 | 開発第4部 | 鈴木 *ソースの順番 @SQLのSELECT文 A<HTML><TABLE>ソース B掲示板に書き込みしたダウンロードソース ダウンロードボタンをクリックしたらダウンロードダイアログボックスが表示され、上記のテーブル内容をcsvファイルにし、ダウンロードをするということをしたいのです。 北岳さんのご指摘の通り先ほどまで、上記テーブルのタグを上部においてからダウンロードボタンをクリック後最初に書きこみしたソースを書いていたんでHTMLファイルが出来てしまうという結果になったんですよね。 ダウンロードaspを別に作成し、北岳さんから頂いたアドバイスを参考にして、ファイルを作成出来るようにします。 |
[2696] Re:csvファイルのダウンロードについて |
投稿者:aibaさん 2002/09/25 17:06:09 |
初めて質問します。初心者です。参考にさせて頂き有難うございます。 掲示板を見て同じことをしてみましたが、次のようになってしまいました。これで良いのかどうかが解らずに困っています。よろしくお願い致します。 ■やりたいこと(ダウンロード) @サーバー側のxxxx.csv複数ファイルをhtml列挙 Aダウンロードしたいファイルを選択(チェックボックスなど) B実行ボタン Cダウンロード(ダイアログボックスの表示→ブラウザでダウンロード) Dファイル列挙画面へ戻る aspモジュールは@〜Bまでがa.asp、Cがb.aspです。 a.aspの内容 <% Server.Execute b.asp %> b.aspの内容 <%@ Language=VBScript %> <% Response.Expires = 0 %> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <META name="GENERATOR" content="IBM WebSphere Homepage Builder Version 6.0.3.0 for Windows"> <META http-equiv="Content-Style-Type" content="text/css"> <% Response.Buffer = True Response.ContentType = "application/binary" Response.ContentType = "text/csv" Response.AddHeader "Content-Disposition","attachment; filename=Data10001.csv" buf1 = "a,b,c" '← テストのため、最終的には既存ファイルにする Response.Write(buf1) Response.End %> ■質問1 ダウンロード時のダイアログボックスの表示が変? +---------------------------------------------+ | 次のファイルをダウンロードしています | | xxxサーバー名 - a.asp | | | | ファイルを開くか、ファイルをコンピュータに... | | 開く 保存 キャンセル 詳細情報 | +---------------------------------------------+ 保存をクリックすると名前を付けて保存ボックスが出てAで選んだファイルが正しく表示されるのですが、どうもすっきりしません。 なぜ、ダウンロードしていますファイルが呼び出し元のa.aspと表示されるのでしょうか?使い方が悪いのでしょうか? ■質問2 選択した既存のファイルを上記の方法でダウンロードさせる場合は、basp21でBinaryReadしたあと、Response.BinaryWriteで書き出すようにとアドバイスを見かけます。csvファイルをダウンロードさせる場合は一般的には、皆さんそうするのでしょうか? (IISやASPをよく理解できていないので不思議に思っています) |
[2699] Re:csvファイルのダウンロードについて |
投稿者:北岳さん 2002/09/25 18:34:36 |
>■質問1 自分もかって IE4〜5.5で同じ現象で悩み、過去ログを探っても解決できず、 まあOKを2回クリックすればいいんだからと、妥協していました。 この際、再度 BabaCenterFolds の過去ログを調べたら、見つけました。 以下、(筆者に無断で)引用しますと、 ------------------------------------------ すいませんが、よくわかりません ( 1999/03/02 17:26 Hipppo2000さんから) >1.Netscape3.0でダウンロードすると、一時ディレクトリに > xxxxxx.aspという名前でダウンロードファイルが出力されて > しまいますが、これは出力しないようにはできるのでしょうか? 多分、これは一時ファイルに内容を保存し、それをExcelが読みこむように なっているのだと思っています。 ですので無理じゃないかと思っています。 ------------------------------------------ あ、なるほど。理屈が通っている感じがしますね。 この際、「仕様」と解釈しておきましょう。(しようがない。。。) |
[2700] Re:csvファイルのダウンロードについて |
投稿者:aibaさん 2002/09/25 19:41:01 |
納得できます。 早速のアドバイス有難うございました。 |
TreeBBS For ASP V.0.1.3 |