プロが教える店舗&オフィスのセキュリティ対策術

「ASP を使用して、書式付きデータを含むブックを作成し、Microsoft Excel に MIME コンテンツとしてストリーム配信する方法」について

ASPで作成した表を、印刷しやすいように、クライアント側のEXCELで表示できないかとサンプルを探していたら、マイクロソフトサポートオンラインで標記のようなサンプルを見つけました。
http://support.microsoft.com/default.aspx?scid=k …

このサンプルの場合、HTML/XML 形式で作成されたEXCELのブックというのは、サーバのどこかに一旦保存されるのでしょうか(それにしては、ファイル名の指定箇所が無い。勝手に作られるとか・・・)。

それとも、サーバには保存されることなく、配信されたら何も残らないのですか。

(後者であれば、多数の人が実行してもサーバに影響がないので、取り入れたいと思っています)

' Buffer the content and send it to Excel.
Response.Buffer = true
Response.ContentType = "application/vnd.ms-excel"
%>
<HTML xmlns:x="urn:schemas-microsoft-com:office:excel">

上記のスクリプトについて調べてみたのですが、リファレンスが日本語で説明してなかったりして、よく分らず、確証が得られませんでした。

どなたか、わかる方がいらっしゃいましたら、よろしくお願い致します。

A 回答 (2件)

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



これは、「これから送信するデータはExcel用のデータです」とブラウザに指示しているだけです。
実際に送信されるデータはhtml形式のままのはずです。
しかし、最近のExcelはhtmlのデータを扱えるので、まるでサーバーでExcelのデータを作ってダウンロードさせているように見えるだけです。

この回答への補足

早速のご回答、有難うございました。

クライアント側のExcelの HTML読み込み機能を使って、送信されたHTML形式のデータを表示しているだけなんですね。

それなら、サーバの負担になりませんね。

このやり方で、進めてみたいと思います。
有難うございました。

ただできれば、
<HTML xmlns:x="urn:schemas-microsoft-com:office:excel">
の意味も教えていただければ、と思います。
ブラウザでエクセルを立ち上げるための指定なのでしょうか。

Response.ContentType = "application/vnd.ms-excel"
と重複するような気がしますが。

補足日時:2010/11/03 17:36
    • good
    • 0

この短いサンプル、なんとなくボーっと最後まで眺めてみましたか?


<html> のタグが 2回出てきます。

後半に出てくるシンプルな <html> はこのページを初回ブラウザで表示させるときの html ソースです。
前半に出てくる、質問に有る html が Excel で開くためのものです。

初回にブラウザで開く html には form があり、i と j という名前の textbox、それから submit ボタンがあります。
submit ボタンを押すと、ふたたび同じページを web サーバーに要求します。
この時 web サーバーは i という名前のテキストボックスに何か値が入っていれば 「初回ではない」 という判断をし、Excel に開いてもらいたい html を出力します。

適当な値を入れた新規の Excel ファイルを html 形式で保存し、作成された html ファイルをメモ帳で開いてみてください。
<html> タグに同じような事が書いてあります。

この回答への補足

ご指定のように、iとjに値を入力して、作成された新規の Excel ファイルを html 形式で保存し、メモ帳で開いてみました。

(1)<HTML xmlns:x="urn:schemas-microsoft-com:office:excel">

(2)<HTML>タグを単純に<HTML>としたもの

・上記の2つを実行したところ、動作としては全く同じでした。

・メモ帳で開いたHTMLのソースでは、(2)の方が、excelのworksheetのオプションの設定のところで7行余分な記述あっただけで、あとは全部一致していました。

以上から、(1)ではなく(2)にしても、あまり影響が無いのかな、と思いました。
ただ、IE7でテストした結果なので、ブラウザが違うと、また動作が変わってくる可能性もありそうです。

今後、いろいろテストしながら、良い方法を探していきたいと思います。
有難うございました。

補足日時:2010/11/05 18:42
    • good
    • 0

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