出来るのだASP Q&A掲示板(過去LOG)  訪問数 52046 昨日 889 今日 776
    【PR】 パソコン入門からIT専門書まで幅広く取り揃えています。セブン-イレブン受取り手数料無料のセブンアンドワイ。
Topに戻る 掲示板に戻る 検索 削除 管理者

csvファイルのダウンロードについて   爽聞茶さん [2002/06/26 19:52:59] [2236]
  Re:csvファイルのダウンロードについて   北岳さん [2002/06/27 9:19:18] [2238]
    Re:csvファイルのダウンロードについて   爽聞茶さん [2002/06/27 10:23:25] [2239]
      Re:csvファイルのダウンロードについて   aibaさん [2002/09/25 17:06:09] [2696]
        Re:csvファイルのダウンロードについて   北岳さん [2002/09/25 18:34:36] [2699]
          Re:csvファイルのダウンロードについて   aibaさん [2002/09/25 19:41:01] [2700]

[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
Program By YasNet