アプリ版:「スタンプのみでお礼する」機能のリリースについて

現在、以下のものを作っています。

1:ブラウザの画面に「EXCEL」というボタンを置く。
2:データをブラウザに表示する。
3:EXCELというボタンを押す
4:ブラウザに表示したデータがエクセルシート形式でそのままブラウザに表示される

こういうのを作っており、今は4の過程で以下のプログラムを入れています。

Response.AddHeader ("content-disposition", "inline; filename=" + fname + ".xls");

しかしこれですと、「ファイルのダウンロード」ボックスが出てきます。
これは、ユーザーが自分でパス指定してダウンロードさせるという方法としては良いのですが、
私がやりたいのはそれではなく、ブラウザにエクセルを表示させたいということです。

誰か知っている方がおられましたらご教授お願いします。

A 回答 (3件)

Content-type: application/vnd.ms-excel


Content-Transfer-Encoding: base64
Content-Disposition: inline;filename=hoge.xls

というヘッダーに変えてみてください。

それでもだめなら、
Content-type: application/vnd.ms-excel
だけにしてみてください。
    • good
    • 0
この回答へのお礼

わざわざありがとうございました。
おっしゃるとおりやってみましたが、それでも
ダウンロードボックスが出てきます。
ダウンロードボックスを出さないでブラウザに表示させることがどうしてもできません。

ちなみに以下のやり方でやっています。
C#です。

Response.ContentType= "application/vnd.ms-excel";
Response.AppendHeader("Content-Transfer-Encoding", "base64");
Response.AddHeader ("content-disposition", "inline; filename=hoge.xls");

// EXCELの出力用のメモリストリームを作成します。
System.IO.MemoryStream memStream = new System.IO.MemoryStream();

// メモリストリームにEXCELエクスポートを行います。
this.xls.Export(rpt.Document, memStream);

// 出力ストリームにEXCELのストリームを出力します。
Response.BinaryWrite(memStream.ToArray());

// バッファリングされているすべての内容をクライアントへ送信します。
Response.End();


↑このやり方でやっても、ヘッダの部分
Response.ContentType= "application/vnd.ms-excel";
Response.AppendHeader("Content-Transfer-Encoding", "base64");
Response.AddHeader ("content-disposition", "inline; filename=hoge.xls");

の部分を
Response.ContentType= "application/vnd.ms-excel";
だけにしても、結果は同じです。

どうしてもブラウザにそのまま表示させることができないのです。

他にやり方はありませんか?
私の方でも色々調べてみたのですが、分かりませんでした。すみません。

お礼日時:2005/06/16 09:55

うーん、ブラウザのバージョンなどでもかなり挙動が違うので有名ですからね。



以前ためしに
Content-type: text/html;
Content-Disposition: inline; filename=hoge.xls
でうまくいったことがありました。

なぜtext/htmlでうまくいったのかはわかりませんでしたが…

一度試してください。
    • good
    • 0

エクセルシートをそのまま表示したいのであれば、ファイル名をURLに指定するだけで表示されます。

(IEの場合のみです)
ASPのコードまでは分りませんが、行き先をファイルにすればできると思います。
    • good
    • 0
この回答へのお礼

ご教授ありがとうございました。
現在はC#でやっています。

Response.ContentType= "application/vnd.ms-excel";
Response.AppendHeader("Content-Transfer-Encoding", "base64");
Response.AddHeader ("content-disposition", "inline; filename=hoge.xls");

// EXCELの出力用のメモリストリームを作成します。
System.IO.MemoryStream memStream = new System.IO.MemoryStream();

// メモリストリームにEXCELエクスポートを行います。
this.xls.Export(rpt.Document, memStream);

// 出力ストリームにEXCELのストリームを出力します。
Response.BinaryWrite(memStream.ToArray());

// バッファリングされているすべての内容をクライアントへ送信します。
Response.End();


↑このやり方でやっても、ヘッダの部分
Response.ContentType= "application/vnd.ms-excel";
Response.AppendHeader("Content-Transfer-Encoding", "base64");
Response.AddHeader ("content-disposition", "inline; filename=hoge.xls");

の部分を
Response.ContentType= "application/vnd.ms-excel";
だけにしても、結果は同じです。

どうしてもブラウザにそのまま表示させることができないのです。

他にやり方はありませんか?
私の方でも色々調べてみたのですが、分かりませんでした。すみません。

お礼日時:2005/06/16 09:56

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!