- - PR -
csvファイルのダウンロードで名前を付けて保存ダイアログのファイルの種類について
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 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 ファイルと表示されます。 どなたか、ご存知の方はいらっしゃいませんでしょうか? ご教示の程、宜しくお願い致します。 | ||||
|
投稿日時: 2007-08-20 18:42
office2003をインストールしたPCのレジストリをregeditで確認したところ、
.csvのContent Typeが設定されていたため、これを削除しました。 すると、「名前を付けて保存」のダイアログのファイルの種類が、正常に Microsoft Office Excel CSVファイルと表示されました。 でもこんな解決方法でよいのだろうか・・ | ||||
|
投稿日時: 2007-08-21 10:48
少なくともウェブアプリの問題ではありませんし、
そもそも問題とも思えません。。。 レスポンスを受け取ったブラウザがどう解釈するかなんて、 クライアントの環境次第ですから。 ただ、マニュアル作成するときのキャプチャのときには ちょっと困ることがあるかもしれませんね。 | ||||
|
投稿日時: 2007-08-21 12:02
かつのり様、ご返答ありがとうございます。
確かにおっしゃる通り、ウェブアプリの問題ではありません。 ただ、本件での問題点は以下にあります。 本システムのクライアントPCの「フォルダオプション」「表示」の設定が 「登録されている拡張子は表示しない」となっている。 そのため、使用者は拡張子を意識せずに、拡張子を除くファイル名のみを 意識して、ファイルを保存しようとします。 その際、ファイルの種類に.csvが表示されず、エクセル ワークシートとなっていた場合、 保存したファイルの拡張子が.xlsとなってしまうということです。 もちろん、保存した後、「フォルダオプション」「表示」の設定を変更し、 エクスプローラ等でファイルの拡張子を変更してやればいいのですが・・・ | ||||
|
投稿日時: 2007-08-21 12:59
Javaの部分が関係しない話題ですからねぇ。 Insider.NETあたりでOfficeの挙動に詳しい人を探すほうがいいのかも。 | ||||
|
投稿日時: 2007-08-21 13:37
nagise様、アドバイスありがとうございます。
Insider.NETで投稿をしてみます。 |
1