- PR -

csvファイルのダウンロードで名前を付けて保存ダイアログのファイルの種類について

1
投稿者投稿内容
いち
会議室デビュー日: 2003/06/09
投稿数: 12
投稿日時: 2007-08-20 14:18
JAVA、StrutsにてWEBシステムを構築し、ダウンロード機能を実装しております。
actionのソースコードは以下の通りです。
−−−−−−−−−−−−−−−−−−−−−以下、ソースコード
//ダウンロード機能実装に、以下の記述が必要
response.reset();
response.setContentType("application/octet-stream; charset=WINDOWS-31J");
response.setHeader(
"Content-Disposition",
"attachment;filename=" + new String((ダウンロード.csv).getBytes("MS932"),"ISO-8859-1" ) );
// ダウンロード機能でのファイルへの書込に必要
PrintWriter out = response.getWriter();

// ダウンロードデータの作成
List outlist = myForm.getOutlist();
// 検索結果のリストデータ
// 1行ずつデータを抜き出し、ファイル出力領域に設定する
for( int i = 0; i < outlist.size(); i++){
out.print( outlist.get(i) );
}
out.close();
−−−−−−−−−−−−−−−−−−−−−以上、ソースコード
上記にて、クライアントPC側がoffice2000をインストールしている場合と、
office2003をインストールしていた場合とで、「ファイルのダウンロード」ダイア
ログボックスで保存を押下した際の、「名前を付けて保存」ダイアログの
ファイルの種類で選択できるものが異なっています。
■office2000の場合にファイルの種類に表示されているのは
 ・Microsoft Excel CSVファイル
■office2003の場合にファイルの種類に表示されているのは
 ・Microsoft Excel ワークシート
ファイル名の拡張子に.csvを設定している為、office2003の場合におい
ても、CSVファイルがファイルの種類に表示されるものと思うのですが、なぜでしょうか
尚、「ファイルのダウンロード」ダイアログの種類には、office2003の場合でも正常に、
Microsoft Office Excel CSV ファイルと表示されます。

どなたか、ご存知の方はいらっしゃいませんでしょうか?
ご教示の程、宜しくお願い致します。
いち
会議室デビュー日: 2003/06/09
投稿数: 12
投稿日時: 2007-08-20 18:42
office2003をインストールしたPCのレジストリをregeditで確認したところ、
.csvのContent Typeが設定されていたため、これを削除しました。
すると、「名前を付けて保存」のダイアログのファイルの種類が、正常に
Microsoft Office Excel CSVファイルと表示されました。
でもこんな解決方法でよいのだろうか・・
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2007-08-21 10:48
少なくともウェブアプリの問題ではありませんし、
そもそも問題とも思えません。。。
レスポンスを受け取ったブラウザがどう解釈するかなんて、
クライアントの環境次第ですから。

ただ、マニュアル作成するときのキャプチャのときには
ちょっと困ることがあるかもしれませんね。
いち
会議室デビュー日: 2003/06/09
投稿数: 12
投稿日時: 2007-08-21 12:02
かつのり様、ご返答ありがとうございます。
確かにおっしゃる通り、ウェブアプリの問題ではありません。
ただ、本件での問題点は以下にあります。
本システムのクライアントPCの「フォルダオプション」「表示」の設定が
「登録されている拡張子は表示しない」となっている。
そのため、使用者は拡張子を意識せずに、拡張子を除くファイル名のみを
意識して、ファイルを保存しようとします。
その際、ファイルの種類に.csvが表示されず、エクセル ワークシートとなっていた場合、
保存したファイルの拡張子が.xlsとなってしまうということです。
もちろん、保存した後、「フォルダオプション」「表示」の設定を変更し、
エクスプローラ等でファイルの拡張子を変更してやればいいのですが・・・
nagise
ぬし
会議室デビュー日: 2006/05/19
投稿数: 1141
投稿日時: 2007-08-21 12:59
引用:

いちさんの書き込み (2007-08-21 12:02) より:
かつのり様、ご返答ありがとうございます。
確かにおっしゃる通り、ウェブアプリの問題ではありません。



Javaの部分が関係しない話題ですからねぇ。
Insider.NETあたりでOfficeの挙動に詳しい人を探すほうがいいのかも。
いち
会議室デビュー日: 2003/06/09
投稿数: 12
投稿日時: 2007-08-21 13:37
nagise様、アドバイスありがとうございます。
Insider.NETで投稿をしてみます。
1

スキルアップ/キャリアアップ(JOB@IT)