- PR -

Excel2007の保存形式でダウンロードしたい

1
投稿者投稿内容
みさ
会議室デビュー日: 2008/01/23
投稿数: 2
投稿日時: 2008-01-23 20:36
初めて投稿させて頂きます。

使用環境
・VisualStudio2005
・ASP.net
・Windows 2003 Server
・Office Excel 2007(サーバ側・クライアント側にインストール)

WebアプリケーションでExcel帳票を出力するプログラムを作成しているのですが、
帳票の拡張子を.xlsxと指定してダウンロードすると、
ダウンロードは正しく行えるのですが、開く際に
「ファイル形式またはファイル拡張子が正しくありません」
とエラーが出て開くことができません。

ダウンロードを行っているコードは以下のように記述しています。
--------------------------------------
Response.ContentType = "application/vnd.ms-excel";
Response.AddHeader("content-disposition",
"attachment; filename=" + ファイル名 + ".xlsx");
Response.WriteFile(作成したファイルへのパス);
Response.Flush();
Response.End();
--------------------------------------

ためしに拡張子を指定せずに
Response.AddHeader("content-disposition",
"attachment; filename=" + ファイル名);
と記述すると、保存後開くことはできるのですが、.xls形式で保存されてしまっています。

アセンブリはMicrosoft.Office.Interop.Excelの12.0を使用しております。
作成したファイルは、.xlsx形式のテンプレートを読み込んで作成したものです。
色々調べてみたのですが、方法が見つかりません。よかったらご教授お願い致します。
todo
ぬし
会議室デビュー日: 2003/07/23
投稿数: 682
投稿日時: 2008-01-23 20:46
引用:

Response.ContentType = "application/vnd.ms-excel";



application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
かな?

http://support.microsoft.com/kb/936496/ja
ぽぴ王子
ぬし
会議室デビュー日: 2006/03/24
投稿数: 475
お住まい・勤務地: お住まい:城・勤務地:城
投稿日時: 2008-01-23 20:47
Response.ContentType = "application/vnd.ms-excel";

ここを

Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";

にしてみてください。
_________________
ぽぴ王子@わんくま同盟
ぽぴ王子の人生プログラミング中 / ぽぴンち。
みさ
会議室デビュー日: 2008/01/23
投稿数: 2
投稿日時: 2008-01-23 22:36
todo様、ぽぴ様、返信ありがとうございます。

コードを以下のように書きなおして実行してみたのですが、
矢張り同じエラーが出て、ファイルを開くことができません…。

Response.ContentType =
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";

ファイル名の後の拡張子をはずして実行すると
.xlsx形式で保存されるのですが、ダウンロードのダイアログにて
開くボタン押下:拡張子が異なりますが開きますか?と確認ダイアログ→OKボタン→ファイルが開ける
保存ボタン押下:保存したファイルを開こうとするとファイル形式または拡張子が正しくないエラー
という風になりました。
ContenTypeを変更するだけでは駄目なのでしょうか。
再度アドバイス頂けたら幸いです。
1

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