2010-12-30 2 views
0

C#에서 VSTO 2003을 호출 할 웹 응용 프로그램이 있습니다. 정상적으로 작동합니다. 나는 웹 서비스에 연결할 수 있도록 응용 프로그램의 URL을 원한다. 당분간 Sheet1_Startup 메서드에서 webservice url을 하드 코드했습니다. 그러나 URL이 변경 될 것이므로 동적으로 URL을 가져 오는 방법이 필요합니다. VSTO를 호출 할 때 URL이 Excel의 셀 중 하나에 배치되기를 원합니다. 웹 응용 프로그램에서 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(); 

아래로 내 웹 응용 프로그램의 코드를 작성 그리고 값은 VSTO에 삽입 얻을 않았다. 지금이 Excel을 다운로드하려면 어떻게합니까?

감사합니다, cmrhema

답변

0

을 경고하며, 당신은 지금까지 웹 서버 환경에서 VSTO를 통해 엑셀에 접근해서는 안된다. Excel은 단일 스레드 응용 프로그램이며 다중 스레드 환경에서 액세스하므로 주로 모든 종류의 스레딩 문제가 발생합니다.

하지만 여전히 질문에 답변 할 수 있습니다. Excel로 포격하는 경우 사용자 지정 명령 줄 인수를 전달할 수 있습니다. Excel의 명령 줄 인수 (예 :/x : myargument)와 충돌하지 않는지 확인하십시오. 인수 프로토콜 (예 : base64)과 충돌하는 특수 문자가 포함되지 않도록 인코딩해야합니다. 추가 기능을로드 할 때 인수를 확인하고 원하는 인수를 사용할 수 있습니다 (Environment.GetCommandLineArgs()). 또는 COM을 통해 Excel을 인스턴스화하고 셀에 값을 입력 할 수 있습니다. http://support.microsoft.com/kb/302096

+0

RobertG5, 답장을 보내 주셔서 감사합니다. – cmrhema

관련 문제