
現在、以下のものを作っています。
1:ブラウザの画面に「EXCEL」というボタンを置く。
2:データをブラウザに表示する。
3:EXCELというボタンを押す
4:ブラウザに表示したデータがエクセルシート形式でそのままブラウザに表示される
こういうのを作っており、今は4の過程で以下のプログラムを入れています。
Response.AddHeader ("content-disposition", "inline; filename=" + fname + ".xls");
しかしこれですと、「ファイルのダウンロード」ボックスが出てきます。
これは、ユーザーが自分でパス指定してダウンロードさせるという方法としては良いのですが、
私がやりたいのはそれではなく、ブラウザにエクセルを表示させたいということです。
誰か知っている方がおられましたらご教授お願いします。
No.2ベストアンサー
- 回答日時:
Content-type: application/vnd.ms-excel
Content-Transfer-Encoding: base64
Content-Disposition: inline;filename=hoge.xls
というヘッダーに変えてみてください。
それでもだめなら、
Content-type: application/vnd.ms-excel
だけにしてみてください。
わざわざありがとうございました。
おっしゃるとおりやってみましたが、それでも
ダウンロードボックスが出てきます。
ダウンロードボックスを出さないでブラウザに表示させることがどうしてもできません。
ちなみに以下のやり方でやっています。
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";
だけにしても、結果は同じです。
どうしてもブラウザにそのまま表示させることができないのです。
他にやり方はありませんか?
私の方でも色々調べてみたのですが、分かりませんでした。すみません。
No.3
- 回答日時:
うーん、ブラウザのバージョンなどでもかなり挙動が違うので有名ですからね。
以前ためしに
Content-type: text/html;
Content-Disposition: inline; filename=hoge.xls
でうまくいったことがありました。
なぜtext/htmlでうまくいったのかはわかりませんでしたが…
一度試してください。
No.1
- 回答日時:
エクセルシートをそのまま表示したいのであれば、ファイル名をURLに指定するだけで表示されます。
(IEの場合のみです)ASPのコードまでは分りませんが、行き先をファイルにすればできると思います。
ご教授ありがとうございました。
現在は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";
だけにしても、結果は同じです。
どうしてもブラウザにそのまま表示させることができないのです。
他にやり方はありませんか?
私の方でも色々調べてみたのですが、分かりませんでした。すみません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
GoogleChromeでレイアウトが左...
-
主要ポータルサイトの多くがス...
-
tabキーによるfocusの当たり方...
-
XMLを作成してもタグしか表示さ...
-
JSONパース時に改行があるとエ...
-
AfterEffectsでイージーイーズ...
-
キーフレーム
-
AirTag(エアタグ)やその他GPS...
-
Python 3.12.2 か一番最新のパ...
-
VC、コンソールアプリ結果の...
-
改行できる・できない入力ボッ...
-
WebBrowserコントロールでペー...
-
なぜか<p> </p>が挿入され...
-
氏名の入力チェックに全角スペ...
-
掲示板からIPアドレスってど...
-
HPに文章で改行はすべてBRタグ...
-
htmlのボタンでF11を入力
-
youtubeに動画をアップロードし...
-
Hタグを改行禁止にしてspanのよ...
-
下着などの洗濯タグ、どうやっ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
GoogleChromeでレイアウトが左...
-
プルダウン(リストボックス)の...
-
doc As HTMLdocumentのコンパイ...
-
WindowsとMacでのChromeのスタ...
-
<IMG>のALIGN属性値「absmiddle...
-
IE以外でのfilter
-
ie6のコーディングで何をすれば...
-
いずれ、HTMLのHPは見れ...
-
HTMLとXHTMLどちらにすべきか
-
HTMLのバージョンの確認方法は?
-
Shift-JISでxml宣言するべき?
-
日数カウントダウンが、ブラウ...
-
ブログのコメント欄のデザイン...
-
表示中のブラウザ情報を他のブ...
-
DOCTYPE宣言はしなくていいの?
-
主要ポータルサイトの多くがス...
-
dreamweaverでCSSのレイアウト...
-
ブラウザから直接HTMLを取得す...
-
何種類のブラウザで表示確認し...
-
dreamweaver 破線・点線が見えない
おすすめ情報