- - PR -
ASPでExcelを起動したいのですが...
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-02-20 13:29
いつも他スレッドを見て勉強させて頂いています。
どこに質問をすればいいのかわからず、 似た質問の載っていたこの場所に書き込みさせて頂きます。 .NET でない質問ですみません。 ASPからExcelの既存ファイルを視覚的に(明示的に?) 開く方法を考えています。 どなたかお力を貸してください。 Windows2003server/IIS6.0/Excel2002 他スレッドの情報を参考に ・フォルダ/ファイルに実行権をつける ・フルパスでファイル呼び出し ・Excelマクロセキュリティは最低に(推奨ではない) ・試しにマクロなしのExcel(test2.xls)を開くように指定 として実行を試みています。 コードを記します。 Set objExcel = Server.CreateObject("Excel.Application") objExcel.visible = True set objWkbook = objExcel.Workbooks.Open("d:\[フルパス]\test2.xls") Set objExcel = Nothing このとき、エラーなく終了し、 test2.xlsはIIS実行ユーザにて開かれた状態になります。 (手動でtest2.xlsを開くと「***ユーザが開いています」意のメッセージ) ユーザから見えるように開けないものなのでしょうか・・・。 (希望としては、そこからVBAもしくはユーザ手動にしたいのです。) 根本的な考え方が違うのかもしれませんが、 アドバイスどうぞよろしくお願いします。 | ||||||||
|
投稿日時: 2007-02-20 13:49
サーバー側で開いてもしょうがないのではないですか?
通常はダウンロードさせて実行させます。 (クライアントに存在しないものを、クライアントで実行することはできませんから) 開くだけなら、Web ブラウザの中で開くことはできますが、 これも、クライアントに存在しないものを開いているわけではありません。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2007-02-20 13:58
じゃんぬねっと様
ありがとうございます。 やはりサーバ側で開いてもダメなんですね・・・。 「ダウンロードさせて実行させる」、 他スレッドでもあった言葉と記憶しています。 これは、ASPから 「ダウンロードさせる」 「実行させる」 どちらもできるものなのでしょうか? 無知で申し訳ありません。 アドバイス頂けませんか? また、調べるためのヒントがあれば教えてください。 よろしくお願いします。 | ||||||||
|
投稿日時: 2007-02-20 14:37
じゃんぬねっと様にアドバイス頂いたように、
ASPで「ファイルをダウンロードさせて実行させる」について調べています。 CSVを作成の折にダウンロードするという方法を見つけました。 http://www.ailight.jp/ASPDownload.aspx いま課題として残っているのが、 @クライアントに、サーバにあるExcelファイルをダウンロードしたい AそのExcelファイルをクライアントに実行させたい です。 特にAについて、実はもう何日か調べていますが、 調べ方が悪いようで、良い方法が見つかりません。 どなたかアドバイス頂けないでしょうか? | ||||||||
|
投稿日時: 2007-02-20 14:57
お話をIEに限定してしまいますが、
クライアントサイドでVBScriptを走らせればよいのでないでしょうか。 | ||||||||
|
投稿日時: 2007-02-20 14:57
@については見つけたページのやり方を参考にして、Response.BinaryWriteあたりを 使用することでできないでしょうか? また、Aについてはユーザが自分の意志とは無関係にファイルを勝手に実行させるこ とができたらセキュリティ的にまずいため普通はできないのではないでしょうか? # Excelファイルを開いて表示するだけなら、Content-Typeにapplication/vnd.ms-excel # を設定すればできるかもしれませんが… | ||||||||
|
投稿日時: 2007-02-20 15:28
Marimo様
アドバイスありがとうございます。 クライアントサイドに処理をうつし、 そこからExcel起動ができたらとても嬉しいです。 しかし、「クライアントサイドでVBScriptを」が、 いまいちうまくイメージつかめません。 今、home.asp の script 部分から サーバ側処理専用のvbプログラム ex_out.asp を呼び出し、 (ここで処理を完結できればベストなのですが) 最後にリダイレクトで home.asp に舞い戻るという策をとっています。 ex_out.asp から何らかのかたちでクライアントサイド script を 呼ぶことができるということなのでしょうか。 例えばex_out.asp→ex_out2.asp(ここでスクリプト実行)・・・など? | ||||||||
|
投稿日時: 2007-02-20 16:02
Katze様
アドバイスありがとうございます。 私の言葉足らずでした申し訳ありません。 @の「Excelのダウンロード」についてですが、 このExcelファイルは、CSVを取り込んだExcelではなく、 帳票のフォーマットというイメージで、 CSVを取り込んでVBAで帳票を作成する機能を有したExcelファイルです。 (既に作成済) このファイルをサーバに置いておき、 何らかのかたちでダウンロードさせてクライアントに実行させたいと考えています。 (無理ならば運用をかえて、CSVをダウンロードののち、クライアント端末から 該当Excel(VBA)をキックする方法にさせて頂こうかとも思っています。) もしかしたらBinaryWriteを使えば、 既存のファイルをダウンロードすることも 可能なのでしょうか・・・。 もう少し調べてみようと思います。 ありがとうございます。 |