2010-12-30 12 views
0

私はC#でVSTO 2003と呼ばれるWebアプリケーションを持っています。正常に動作します。アプリケーションのURLが必要なので、Webサービスに接続できます。当面は、WebサービスのURLをSheet1_Startupメソッドでハードコードしています。しかし、URLが変更されるので、URLを動的に取得する方法が必要です。 これはVSTOを呼び出すときに、Excelのセルの1つにURLを配置したい場合です WebアプリケーションからVSTO 2003アプリケーションにクエリ文字列を渡す方法はありますか?VSTOアプリケーションでアプリケーションのURLを取得するには

お願いします。

RobertG5

@私は

System.Data.OleDb.OleDbConnection objConn = new System.Data.OleDb.OleDbConnection(
    "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + @"C:\Examples\VSTO2007\VSTO2007\VSTO2007.xlsx" + 
    ";Extended Properties=Excel 8.0;"); 
      objConn.Open(); 


      System.Data.OleDb.OleDbCommand objCmd = new System.Data.OleDb.OleDbCommand(); 
      objCmd.Connection = objConn; 
      objCmd.CommandText = "Insert into [Sheet1$]" + 
       " values ('Test')"; 
      objCmd.ExecuteNonQuery(); 


      // Close the connection. 
      objConn.Close(); 

以下のように自分のWebアプリケーションのコードを書き、値がVSTO Excelシートに挿入されますでした。 今、このExcelをダウンロードします。

よろしく、 cmrhema

答えて

0

事前警告、あなたはWebサーバ環境でVSTOを通じてExcelをアクセスしてはいけません。主にExcelがシングルスレッドアプリケーションであり、マルチスレッド環境でアクセスしているため、あらゆる種類のスレッド問題が発生します。

しかし、私はまだあなたの質問に答えることができます。あなたがExcelに砲撃している場合は、独自のカスタムコマンドライン引数を渡すことができます。 Excelのコマンドライン引数(例:/ x:myargument)と競合しないようにしてください。引数プロトコル(たとえばbase64)と競合する特別な文字は含まれないようにエンコードする必要があります。アドインの読み込み時に、引数をチェックして好きなことを実行できます(Environment.GetCommandLineArgs())。 または単にCOM経由でExcelをインスタンス化し、値をセルにポックすることができます。 http://support.microsoft.com/kb/302096

+0

RobertG5、返信ありがとうございます。 – cmrhema

関連する問題