人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

ASPを使用したWeb画面開発における、CSVファイルのダウンロード処理について質問です。

Response.ContentType = "application/octet-stream";
Response.AddHeader "Content-Disposition","attachment; filename=aaaaa.csv"

↑を使用してダウンロードダイアログを表示しクライアントへのダウンロードを行う場合、
ダウンロードダイアログの[開く]を押下(※1)して表示すると、おかしなシート名 ".csv]aaaaa[1]" になってしまいます。
これを避ける事は可能でしょうか?
また、[開く]という選択肢無しでクライアントへのダウンロードに導く方法・アイデアが有りましたらご教授願います。

※1 クライアントPCにExcelが入っており、かつcsvが関連付けられている場合。

●質問者: litetuna
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:application ASP CSV Excel pc
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● tawazou
●25ポイント

ファイル名に

[]

を使用していないでしょうか?(正確には ] 。)

EXCEL内部ではシート名は

[ファイル名]シート名

という形式で管理しているため、ファイル名に[]があるとシート名がおかしくなります。

恐らくこれが関係しているのではないかと思います。


1. [].xlsを作成(中身は空でも良い)

2. [].xlsを開き、シート名を変更

→シート名がおかしくなります。


また、ダイアログを出さずにEXCELで開くようにするには

http://support.microsoft.com/kb/303475/ja/

をご参照下さい。

◎質問者からの返答

回答有難う御座います。

ファイル名に[]は指定していません。


2 ● llusall
●45ポイント

参考までに、

エクセルとVBScriptを使用して、

ダイアログ非表示でCSVファイルをダウンロードする方法を紹介します。


※VBScriptを使用しているので、IE限定です。

※Excelを使用しているので、ローカルマシンにExcelが必要です。

※実際にはセキュリティレベルを落とさないと駄目だと思うので、社内イントラ等での利用に限定されるかと思います。


以下の内容をローカルに保存して[ダウンロード]ボタンを押下してみてください。

<html>

<body>

<input type="button" value="ダウンロード" onClick="DownLoad()">

</body>

</html>

<script Language="VBScript">

Option Explicit

Sub DownLoad()

    Dim objExcel

    Const xlCSV = 6

    'エクセルオブジェクトを作成します

    Set objExcel = CreateObject("Excel.Application")

    'エクセル画面を非表示

    objExcel.Visible = True

    '各種の確認ダイアログを非表示

    objExcel.DisplayAlerts = False

    'ワークブックを開きます(■ダウンロードするCSVを設定)

    objExcel.Workbooks.Open "http://xxxx/test.csv"

    'ワークブックの保存(■保存先を設定)

    objExcel.ActiveWorkbook.SaveAs "c:\download.csv", xlCSV

    'エクセルを終了します

    objExcel.Quit

    

    'エクセルオブジェクトの破棄

    Set objExcel = Nothing

    MsgBox "おしまい"

End Sub

</script>


※インターネットやイントラネットのセキュリティーゾーンで使用する場合は、

IEのセキュリティの設定で、

「スクリプトを実行しても安全だとマークされていないActiveXコントロールの初期化とスクリプトの実行」

項目を「ダイアログを表示する」または「有効にする」に設定してください。

◎質問者からの返答

回答有難う御座います。

Excel使用を前提にしてしまうと色々と面倒な様ですね。結局、ダウンロードファイルの拡張子をtxtにし、csvへのリネーム・Excelへの読込をクライアントユーザに委ねる事で落ち着きました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ