- ベストアンサー
ASPから既存のexcelブックを開きたいです
件名どおり、ASPから既存のexcelブックを開きたいです。 サーバ上にあるexcelブックをただ開く(表示)させるだけでいいんですが。 できないものなのでしょうか。 エラー的には「オブジェクトがありません」がでてしまいます。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
Set objExcel = Server.CreateObject("Excel.Application") これはサーバーの内部で Excel を起動するためのコード。 恐らくはこの後にサーバー内にある Excel のデーターファイルを開く処理を記述したいんだと思うが、サーバーが Excel ファイルを開いてみ意味がないし、サーバーに Excel をインストールしてるはずもないだろうし、一度に複数人がそのページを開こうとすると、同時閲覧者の数だけ Excel が起動するし、サーバーの内部で ASP の処理をしているアカウントはサーバーにログオンしたことがないアカウントだろうから Excel を起動させることもできないだろうし、、、 やっぱり意味がない。 ASP 云々の話ではなく、根本的な勘違いをしている。 今回の要望は、クライアント側のブラウザ上で、サーバーにある Excel ファイルを開きたいわけなので、ASP は特に関係ない。 Excel のデーターファイルにハイパー リンクを張る、通常の HTML の書き方だけで良い。 もし仮に Set objExcel = Server.CreateObject("Excel.Application") とかやるんだったら、サーバー側で Excel のデーターファイルを開き、シート上のセル値を読み取って、HTML のテーブルで表を作成して、読み取ったセル値を表示させる方法になってくる。 この場合、ブラウザ上に表示されるのは単なる HTML のテーブルであるので、ユーザーは Excel を起動するわけでなない。
その他の回答 (3)
- asteroid-b
- ベストアンサー率61% (16/26)
#1です >>サーバ上にあるexcelブックをただ開く(表示)させるだけでいいんですが。 それならば#3様がおっしゃるようにHTMLレベルで十分でしょう。 <a href="/***/test.xls">***</a> とかで。
お礼
asteroid-b様、ご親切に複数回の回答ありがとうございます。 どうやら私が根本的な間違いをしていたようで、お手数おかけしました。
- chochobizo
- ベストアンサー率42% (30/70)
サーバ側にExcelアプリがインストールされていないため・・とか。 クライアント側に普通に開くだけなら、 <A HREF="aaaaa.xls">Excelファイル</A> のようなリンクで開かないですか? あるいはBinaryWriteでバイナリ出力し、 ContentTypeにExcelを指定する。 以下に参考URL http://www.ken3.org/asp/backno/asp059.html
お礼
回答ありがとうございます。 やっぱり<A HREF="aaaaa.xls">Excelファイル</A>ですよね。 ちょと自分の考えかたに誤りがあったようで、お手数おかけしました。
- asteroid-b
- ベストアンサー率61% (16/26)
クライアント側がexcelを見る(ダウン)ですよね? 普通にできません?
お礼
返信ありがとうございます。 できないんですよ。なぜか。 例えば Set objExcel = Server.CreateObject("Excel.Application") とか指定しても、無視されるか、エラー:オブジェクトがありませんと 表示されます。 既存のエクセルブックはサーバ上にあり、パスは絶対値を指定しています。そのパスをエクスプローラに入力すれば、ちゃんと開きます。 でもASP上だと開かない。なぜでしょう?? Set WshShell = CreateObject("Wscript.Shell") もためしましたが、結果は同じです・・・
お礼
そうか! 勘違いしてるんですね。すみません。自分で袋小路に入っていたようです。 ありがとうございます。たすかりました。