- PR -

EXCELの表示が出来ません

1
投稿者投稿内容
ドンファン
会議室デビュー日: 2003/10/22
投稿数: 11
投稿日時: 2003-10-23 13:25
初めて書込みします。
ドンファンといいます。
.NETはまだ2ヶ月足らずの初心者です。

諸先輩方にお聞きしたいのですが、ASP.NETからEXCELを起動しても
うまく表示されなくて困っています。

----------------------------------------------------------------------
Dim xlApp As Excel.Application

xlApp = CreateObject("Excel.Application")
xlApp.Visible = True
xlApp.ScreenUpdating = True
xlApp.Workbooks.Open("C:\TEST.XLS")
        :
        :
xlApp.Workbooks(1).Sheets(1).PrintOut(Copies:=1)

上記のようなコードを書いているのですが
タスクマネージャで確認する限りEXCELは起動しているようです。
(過去のスレッドにあったように、終了の問題もありましたが
 とりあえずそちらは解決いたしました。)

単純に考えればVisibleをTrueにすれば表示されるように思うのですが
何か他の処理が必要なのでしょうか?
かなり基本的な質問で申し訳ないのですが、よろしくお願いします。

ちなみにCreateInstanceやその他のメゾッドでエラーは
発生していないようです。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2003-10-23 14:54
引用:

ドンファンさんの書き込み (2003-10-23 13:25) より:

諸先輩方にお聞きしたいのですが、ASP.NETからEXCELを起動しても
うまく表示されなくて困っています。


 ASP.NETの、サーバサイドでなら、表示されないのが正解です。それよりも、「起動できない」問題があったはずですが、それをどうやってクリアしたのか、そちらに興味があります(そして、そこに「なぜ表示できないのか」の答えのヒントがあるはず)。

#表示させる方法は、あることはありますが、使えないはず・・・
ドンファン
会議室デビュー日: 2003/10/22
投稿数: 11
投稿日時: 2003-10-23 15:27
さっそくの返答ありがとうございます。

----------------------------------------------------------------------
ASP.NETの、サーバサイドでなら、表示されないのが正解です。

----------------------------------------------------------------------

う〜ん、そうなのですか・・・
と言うことは過去のスレッドに書かれてあったように
(所謂)クライアントにファイルを転送するなりなんなりして
面倒な処理を行わないと駄目って言うことなのですね。
ちなみにクライアントからブラウザで見に行っても駄目でした。
多分これは当然の事なのでしょうが・・・

----------------------------------------------------------------------
それよりも、「起動できない」問題があったはずですが、それをどうやってクリアしたのか、そちらに興味があります(そして、そこに「なぜ表示できないのか」の答えのヒントがあるはず)。

----------------------------------------------------------------------
これは過去のスレッドを参考にして
dcomcnfg.exeを実行して権限を与えてやりました。
テストなのでとりあえず全部の権限にEveryoneを与えてみました。

お手数で申し訳ないのですが、試しに表示させる方法を
お教え願えないでしょうか?
いろいろ試してみたいので、よろしくお願いしますm(_ _)m

それと書き忘れてたのですが開発環境は
Windows2000 VS.NET2003 Office2000
です。
VisualBasic.NETのASP.NETでWebアプリケーションを作成しています。
ドンファン
会議室デビュー日: 2003/10/22
投稿数: 11
投稿日時: 2003-10-23 16:36
自己レスです。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
Jittaさんレス
   #表示させる方法は、あることはありますが、使えないはず・・・


自分なりにいろいろ試してみたのですが、EXCELファイルの作成や
ファイルへの書込み等は可能でした。
そこでファイルへのデータ書込みが完了した後に

Response.Redirect(ファイル名)

としたところ、EXCEL自体は起動しないのですが
ブラウザにEXCELのブックが表示されました。
もしかしてこういう方法の事でしょうか?
もし他にも方法があるようでしたらお手数をおかけしますが
教えていただけますでしょうか?

よろしくお願いします
きくちゃん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 854
お住まい・勤務地: 都内某所
投稿日時: 2003-10-24 09:48
ドンファンさん、おはようござます。

引用:

ブラウザにEXCELのブックが表示されました。
もしかしてこういう方法の事でしょうか?


そもそも、Excelをどこに表示させたいのでしょうか?
クライアント側ですか? サーバ側ですか?
サーバの画面上で表示させたいのだとしたら、やりようによっては出来ない事もないのでしょうけれど、何故、基本的には出来ないようになっているのかを考えてみて下さい。
例えば、サーバに対してローカルにログインしているユーザが居なければ、遠くのクライアントがこの処理を実行した場合、表示すべきデスクトップがありませんよね?

クライアント側で表示させたいのであれば、ドンファンさんが辿り着いた

Response.Redirect(ファイル名)

あたりが、まあ、正解の一つと言って構わないと思います。
asp.netのコードを実行しているのはあくまでもサーバ側で、クライアント側では単にasp.netの出力するhtmlがブラウザに表示されているだけです。
ローカルマシン上のIISを使って開発していると、タスクマネージャにブラウザのプロセスもExcelのプロセスも存在するので、混同してしまうかも知れませんけど、別のマシンからそのWebフォームを操作してみると、クライアント側、サーバ側それぞれで、何が起こっているのかが理解出来ると思います。

Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2003-10-24 10:23
引用:

ドンファンさんの書き込み (2003-10-23 15:27) より:

お手数で申し訳ないのですが、試しに表示させる方法を
お教え願えないでしょうか?


 おそらく、開発中にちゃんとExcelが動いているか確認したい、ということだと理解していますが・・・。

 ログオン中のユーザで実行するように変更してみてください。そのユーザが端末を使用中の場合に限り、表示できると思います。
(サーバ側のExcelをクライアントに表示することはできませんよ。イヤ、『画面だけ持ってくる』という方法がないこともないけど・・・)
ドンファン
会議室デビュー日: 2003/10/22
投稿数: 11
投稿日時: 2003-10-24 10:33
Jittaさん、きくちゃん
早速のレスありがとうございます。

Jittaさんのおっしゃるとおり、とりあえずちゃんとExcelが動いているかどうかを
確認したかっただけです。
まぁ書き込みした後にファイルを開いてみれば確認出来なくもないのですが・・・
ただExcelへの書き込み結果をクライアント側でも見たいという事だったので
無理矢理にでもクライアント側のExcelと同期(?)が取れればと思っていました。

とりあえず自己レスで使った方法を使おうと検討中です。
Jittaさんの『ログオン中のユーザーで…』も試させていただきます。

いろいろご指導ありがとうございました。
今まではWindowsアプリケーションしか作った事なかったので
Webになっていろいろ戸惑っている状況です。
また初歩的な質問などさせていただくかもしれませんが
よろしくお願いします。
1

スキルアップ/キャリアアップ(JOB@IT)