- PR -

VS2005 VB Webアプリ エクセル操作

投稿者投稿内容
なぼな
ベテラン
会議室デビュー日: 2004/08/04
投稿数: 61
投稿日時: 2006-03-10 15:26
お世話になります。
ご存知の方いらっしゃいまいたら、ご教授お願いします。

開発環境: WinXP
サーバ:  WinSV 2003 
開発ツール・言語: VS2005 VB
DB:   SQLServer2000
にて開発しております。

DBに保存してあるデータを、エクセルに出力をすることを確認しております。
GridViewをエクセルに直接出力することはご教授いただき可能でしたが、
その後Webでいろいろ調べると、エクセル自体を操作できそうなことがわかり
実装してみました。
「Comの設定をして・・・」
「エクセルにピボットテーブルを作成する .NET VBコードを実装して・・・」
とコードを書き実行してみるとなんとデバック環境下では実現できてしまいました!
そのモジュールを、サーバへ「Web発行」しサーバ側へアクセスすると、
なんと
「ActiveX コンポーネントを作成できません。
 説明: 現在の Web 要求を実行中に、ハンドルされていない例外が発生しました。エラーに関する詳細および例外の発生場所については、スタック トレースを参照してください。

例外の詳細: System.Exception: ActiveX コンポーネントを作成できません。

スタックとレースは、
「[Exception: ActiveX コンポーネントを作成できません。]
Microsoft.VisualBasic.Interaction.CreateObject(String ProgId, String ServerName)
          ・(以下略)」
といわれてしまいます。
どうもActiveXを使ったエクセル起動ができないとうい感じ???

.NET FrameWorkがインストールされているされていないの問題化と思いましたが、
どうも違うようです。

以前に、NetScape+JAVAでクライアントへの出力を試みたときに、
「クライアントのモジュールを実行するなんて無理」
という結論になっています。(ちょっとかじっただけですが)

セキュリティいレベルで考えると確かに無理かなとも思えるのですが、
どうも開発環境でできてしまうとWindowsオリジナル構成(OS、OFFICE、IIS)では
可能なのではないかという希望もあります。

ご存知の方いらっしゃいましたら、ご教授よろしくお願いします。
渋木宏明(ひどり)
ぬし
会議室デビュー日: 2004/01/14
投稿数: 1155
お住まい・勤務地: 東京
投稿日時: 2006-03-10 15:57
引用:

そのモジュールを、サーバへ「Web発行」しサーバ側へアクセスすると、
なんと
「ActiveX コンポーネントを作成できません。



サーバに Excel はインストールされていますか?

_________________
// 渋木宏明 (Hiroaki SHIBUKI)
// http://hidori.jp/
// Microsoft MVP for Visual C#
//
// @IT会議室 RSS 配信中: http://hidori.jp/rss/atmarkIT/
なぼな
ベテラン
会議室デビュー日: 2004/08/04
投稿数: 61
投稿日時: 2006-03-10 16:01
サーバへは、OFFICEはすべてインストールしてあります。
ついでかもしれませんが、VS2005もインストールしてあります。
道具立ては、すべて開発機と同じです。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-03-10 16:34
引用:

なぼなさんの書き込み (2006-03-10 15:26) より:

以前に、NetScape+JAVAでクライアントへの出力を試みたときに、
「クライアントのモジュールを実行するなんて無理」
という結論になっています。(ちょっとかじっただけですが)


その Excel.Application ってサーバで起動したいんじゃないんですか?
クライアント側で起動したいんですか!?

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
todo
ぬし
会議室デビュー日: 2003/07/23
投稿数: 682
投稿日時: 2006-03-10 16:37
http://support.microsoft.com/default.aspx?scid=KB;ja;JP257757
http://www.atmarkit.co.jp/fdotnet/index/bbs/dir91.html
渋木宏明(ひどり)
ぬし
会議室デビュー日: 2004/01/14
投稿数: 1155
お住まい・勤務地: 東京
投稿日時: 2006-03-10 16:48
引用:

以前に、NetScape+JAVAでクライアントへの出力を試みたときに、
「クライアントのモジュールを実行するなんて無理」
という結論になっています。(ちょっとかじっただけですが)

セキュリティいレベルで考えると確かに無理かなとも思えるのですが、
どうも開発環境でできてしまうとWindowsオリジナル構成(OS、OFFICE、IIS)では
可能なのではないかという希望もあります。



サーバサイドで Office を実行することは可能です。

が、開発元の Microsoft 自体が推奨していない用法ですから、やらないで済むならやらない方が無難です。

_________________
// 渋木宏明 (Hiroaki SHIBUKI)
// http://hidori.jp/
// Microsoft MVP for Visual C#
//
// @IT会議室 RSS 配信中: http://hidori.jp/rss/atmarkIT/
渋木宏明(ひどり)
ぬし
会議室デビュー日: 2004/01/14
投稿数: 1155
お住まい・勤務地: 東京
投稿日時: 2006-03-10 16:50
引用:

なぼなさんの書き込み (2006-03-10 16:01) より:
サーバへは、OFFICEはすべてインストールしてあります。



なら、DCOMCNFG.exe で実行環境の調整をしてください。

_________________
// 渋木宏明 (Hiroaki SHIBUKI)
// http://hidori.jp/
// Microsoft MVP for Visual C#
//
// @IT会議室 RSS 配信中: http://hidori.jp/rss/atmarkIT/
なぼな
ベテラン
会議室デビュー日: 2004/08/04
投稿数: 61
投稿日時: 2006-03-10 19:21
お世話になります。
じゃんぬねっとさん、渋木宏明(ひどり)さん、todoさんありがとうございます。
さらに、遅くなってすみません。会議によび出されまして・・・

>その Excel.Application ってサーバで起動したいんじゃないんですか?
探した資料がそのようになっていたので、CreateObject()でエクセルを起動しています。
これがサーバに相当するならば、サーバ起動となります。

やりたいことは、
 Webサービスで、SQLServerのクエリから出力するのではなく、
 DBをReadして、起動したエクセルのCELLを指定して出力したいです。
 結果、中計などを盛り込んだ定型帳票を自動的に作成する。
というものです。

よって、GridViewをエクセルに出力するよりも、よりユーザが見慣れた
形式で表現するこができる、予定だったのですが・・・

DCOMCNFG.exeですね。ありがとうございます。

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