• 締切済み

ASP.NETからエクセルを呼び出せますか?

VS2003でASP.NETのプログラムを作成しているのですが、ASP.NETからexcel.exeなどのexeプログラムは呼び出せるのでしょうか? shell関数を使っても、何も反応がありません。 すいませんが、出来る方法を教えて下さいますようお願いします。

みんなの回答

  • qtea
  • ベストアンサー率77% (38/49)
回答No.3

コンポーネントサービスで、「Microsoft Office Access アプリケーション」を探す。 プロパティのセキュリティタブに、3つアクセス許可があるので、カスタマイズを選択して、XPなら「ASPNET」、2003なら「NETWORK SERVICE」のアカウントで起動できるようにする。 VSのプロジェクトの参照の追加の「COM」タブに「Microsoft Access 11.0 Object Library」がある(はず)ので追加する。 あとは、 >Dim myaccess As New Microsoft.Office.Interop.Access.Application として、アクセスの起動ができているのか確認する。 ここから、どうするのかは、アクセスでなにかしたことがないので、下記を参照してみてください。 http://support.microsoft.com/kb/825796/ja http://www.microsoft.com/japan/msdn/office/access2003/odc_AcAutomateVBNet.aspx http://support.microsoft.com/kb/317114/ja?spid=1266&sid=959 http://support.microsoft.com/default.aspx?scid=kb;ja;306682 http://msdn2.microsoft.com/ja-jp/library/microsoft.office.interop.excel(VS.80).aspx HELP ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.1041/odeopg/html/deovrotherobjectspropertiesmethodsofapplicationobject.htm

ts8260
質問者

お礼

qteaさまへ 解答ありがとうございます。 明日会社で実験してみますので、また連絡させてもらいます。 ずっと困っていまして、親切な方で大変嬉しく思います。

  • qtea
  • ベストアンサー率77% (38/49)
回答No.2

詳しいことは、会社にいかないとVSがないので書けませんけど… COMを利用するのが普通(?)かな… 簡単にポイントだけを書くと… ◯ASP.NETを動作させるPCにExcelをインストールする ◯プロジェクトの参照設定で、Excel Application を参照するようにする ◯コントロールパネル->管理ツール->コンポーネントサービスを起動して、\コンピュータ\マイコンピュータ\DCOMの構成の下にある、Microsofot Excel Applicationのプロパティを開いて、ASP.NETの実行ユーザー(OSやIISのバージョンによって、ユーザ名はかわる。XPだとASP NETだったかな。)にアクセス権限をあたえる ってところでしょうか。 注意点としては、COMオブジェクトをきちんと開放しなければ、起動したExcelは、おわってくれません。 http://jeanne.wankuma.com/tips/programing/releasecom.html 起動しても、ExcelのWindowは開かないので、起動しているのかどうかを確認するには、タスクマネージャーでプロセスを見てください。 Windowを開かないので、もし、Excelの実行中に、メッセージボックス等が出たら…そのメッセージボックスのOKを押せないので、困ったことになります。なので… ・メッセージボックスが出ない設定にしないといけない。 ・マクロ等を実行するのなら、マクロセキュティを低に設定しないといけない。 ・マクロにエラーがないことをしっかり確認しなければいけない など、考慮しないといけないです。 他には…ちゃんと確認はしていませんが、Excelのライセンスあたりも微妙そうです。クライアント側もExcelのライセンスがないとダメとかいう話も…ほんとうかどうかは不明ですが。 あと…Excelは軽いソフトとはいえないので、たくさんのユーザーが、動作させたら…どうなるんでしょうね^^; このあたりは、イントラネットならさほど問題にはならないと思いますが… でも、PDFを出力するのが目的なら、ActiveReportsを利用するというのも手ですよ。購入する余裕があれば…ですが。 http://www.grapecity.com/japan/support/database/P7_330.htm 他にはこういう記事もあります。 http://www.atmarkit.co.jp/fdotnet/dotnettips/309aspgenpdf1/aspgenpdf1.html

ts8260
質問者

お礼

qteaさんありがとうございます。 確かにタスクマネージャーでプロセスを見ると立ち上がっていました。 ASP.NETからACCESSのMDBをshell関数で呼んでも、MSACCESS.EXEしか タスクマネージャに存在していません。 また、呼んだMDBでは何の処理もされていませんでした。 出来ればもう少し分かりやすく説明していただければうれしいのですが。 よろしくお願いします。

  • Bonjin
  • ベストアンサー率43% (418/971)
回答No.1

>何も反応がありません 何を理由に「反応がない」と判断したのでしょうか? Webサーバ側でExcelを実行してもGUI(デスクトップ)がないのでエラーになるか見えないだけだと思いますよ。 >出来る方法を教えて下さいますようお願いします Excelを使って何をしたいのかで方法が変わってくると思います。 ワークブックを作ったりデータを変更したいならば http://msdn2.microsoft.com/ja-jp/library/microsoft.office.interop.excel(VS.80).aspx この辺りのサンプルコードを参考にすればできるかも知れません。 もう少し具体的に何をしたいのか書かれると具体的な回答がもらえると思います。

ts8260
質問者

補足

Bonjinさんありがとうございます。 ASP.NETからexcelも呼びたいのですが、今考えているのは、ACCESSのデータベースに書き込み、レポート出力を「いきなりPDF」みたいなツールを 使ってサーバーにあるフォルダーに保管させ、Response.Writeでクライアントにダウンロード出来ないかなと思っております。 ASP.NETからACCESSのレポート出力が出来れば一番いいのですが。 出来ますでしょうか?

関連するQ&A

  • ASP.NETエラー

    VS2003を使用していますが、 ASP.NETを作成中にVB6.0とSPREADというコンポーネントをインストールしました。 すると、VS2003上のASP.NETがサーバに接続できなくなり、 新規作成もできなくなりました。 『サーバに接続できませんでした。』 と表示されます。 インターネットインフォメーションサービスでいろいろ確認しても、 変わったところはなさそうなのです。 VS2003とSPREADは再インストールしましたが、 症状は変わりませんでした。 何か原因はわかりますでしょうか? よろしくお願いします。

  • ASP.netの<center>について

    OS:windwos2000 VS.net2003 Dev はじめまして。 現在ASP.netで簡単なWebページを作成しておりますが 以前のASPでは<center>を使えたのに ASP.netに変わってからは使えなくなってしまいました。 ASP.netでコンテンツを画面中央に持ってくる為には どのようにすればよいでしょうか? ご存知の方ご教示宜しくお願いします。

    • ベストアンサー
    • HTML
  • asp.netで*.aspxが表示されない

    windows7 + VS2005のasp.net でビルド時にブラウザが立ち上がるのですが、 *.aspxのページが表示されず、ディレクトリが表示されてしまいます。 (*.aspxのプログラムが動作していない?) 恐らくIISの設定だと思うのですが、どのように設定したらいいのでしょうか? ちなみにhttp://localhost/asp/ どようなアドレスで構成しています。 ちなみに1からVSを作成して、ビルドすると、*.aspxページは表示されますが、 URLは臨時で作成されたような http://localhost:62236/testes1/ アドレスになります。

  • ASP.netについて

    OS:win2k VS.net dev はじめまして。 ASP.net初心者です。 aspでは<!-- #Include File="xxx.asp" -->として 共通モジュールは外部ファイルにして使えましたが ASP.netの場合はどのようにすれば 宜しいのでしょうか? ご存知の方ご教示宜しくお願い致します。

  • ASP.NETでの共通コードの書き方を教えてください。

    ASP.NETでの共通コードの書き方を教えてください。 いつもお世話になっております。 最近、microsoft Accessで作成したシステムを、Visual Wev Developer 2008を利用して、asp.netに移行しようとしております。 そこで質問なのですが、VBAなどでは、各フォームで共通利用するグローバル関数(Function)をモジュールオブジェクトに作成できましたが、ASP .NETでは、各ページで共通利用する関数をどこに記載したらいいのでしょうか。(たとえば、共通の計算式など) 初歩的なことかもしれませんが、具体的な手順をご指導いただければ大変助かります。 よろしくお願いいたいします。

  • レガシーASPのデバッグ

    tomixと申します。 レガシーASPをメンテナンスしております。 VS2005 Pro. EditionでレガシーASPをステップしながらデバッグしたいのですが どのようにすれば、サーバーサイドのプログラムをステップしながらデバッグできるかわかりません。 どなたか、ステップデバッグしているという方はおられますか? http://msdn.microsoft.com/ja-jp/library/ms241740(VS.80).aspx を読むとできるようなのですが、以下がわからず困っております。 まず「Mtx.exe プロセスにアタッチする必要があります。」の Mtx.exeはどのようにすればアタッチする画面に表示されるでしょうか? よろしくお願いします。

  • ASP.NETについて

    ASP.NETについて教えてください。 VisualStudio2010、VBでASP.NETを開発しています。 クラインアントで起動した時に、自分の端末のC:\test.xlsをオープンしたいのですが、サーバー側の Excelが開いてしまいます。 どのような設定、構文を書けばクライアントのExcelを起動する事ができるのでしょうか?

  • EXCELをもう一つ立ち上げたい

    マクロを使用して sub 関数1 shell "C:\Program Files\Microsoft Office\Office\EXCEL.EXE", 1 end sub と記述すれば EXCELがもう一つたちあがります。 また、 sub 関数2 Workbooks.Open FileName:="C:\MyDocuments\aa.xls" end sub と記述すればMyDocments配下のaa.xls というファイルがたちあがります。 そこで、ここから本題なのですが、 aa.xlsというEXCELファイルをもう一つのEXCELに立ちげる方法を教えて頂けませんでしょうか? よろしくお願いします。

  • ASP.NETからEXCEL起動

    初投稿です。よろしくお願いします。 現在、諸事の事情により、ASP.NETからサーバ上のEXCELのマクロを実行しようとしてますが、起動できずに困っております。 過去ログを探してみて、偽装とDCOMの構成は行いました。 EXCELが実行できるならと思い、ATコマンドでもbatでもたたいてみましたが、 マクロの実行はできませんでした。 諸兄のご助言をお願いしたく思います。 【環境】 OS:WinXP Pro SP2 VisualStadio.Net 2003 Framework1.1 IIS 5.1 MicrosoftOffice 2003 【やりたいこと】 ASP.NETで作成したプログラム上でブラウザのボタンを押したとき、 サーバーのC:\check.xlsを Dim p As Process = Process.Start("EXCEL", "C:\check.xls") で起動し、 書いてあるマクロを実行したい。 【現状】 タスクマネージャで確認したところ、 EXCEL.exe ユーザ名ASPNET は表示されたが マクロは動かなかった。 デバッグで System.Security.Principal.WindowsIdentity.GetCurrent().Name を行ったところ、"マシン名\testuser"となり、 偽装は成功しているよう。 【準備したこと】 1.DCOMの構成のユーザ追加: 管理ツール/コンポーネントサービス/コンポーネントサービス/コンピュータ/マイコンピュータ/DCOMの構成/Microsoft Excel アプリケーションのプロパティ/セキュリティ/ の 「起動とアクティブ化のアクセス許可」のカスタマイズ項目を編集し、testuser とASPNETを追加 「アクセス許可」のカスタマイズ項目を編集し、testuserと ASPNETを追加 2.偽装の有効化: Web.configに <identity impersonate="true" userName="testuser" password="testuser" /> を追加 testuserはAdministrator権限 何とかしたいのですが、方法のご指導をよろしくお願いします。

  • ASPからASP.NETへ

    おねがいします。 主にdbmagicで開発をしています。 ASP、ASP.NETは素人です。 今携わっている案件が、オフコンからのリプレースと それと連携したASPで作られたwebシステムを ASP.NETでリプレースするという内容です。 仕様は元のASPと同じでよいので、何か変換ツールで ASP.NETへコンバート出来ないかなと思っています。 過去ログ拝見しても作り直ししかない様なお話なのですが どうなのでしょうか? 調べてはみましたが確かにそういったツールは見つかりませんでした。 何かよい方法があれば御教授お願い致します。

専門家に質問してみよう