2009-10-13 6 views
0

웹에서 VSTO에 대한 정보를 많이 볼 수 있으며 C#에서 Excel을 자동화 할 수 있지만 C# 어셈블리를 연결하여 Excel에서 볼 수 있도록하는 방법은 거의 없습니다.com interop : Excel 또는 Access에서 C#을 소비하는 방법

누군가 COM 인터페이스, GUIDS, ComVisible 등을 만드는 방법을 설명하는 몇 가지 기본적인 정보를 알려줄 수 있습니까?

답변

2

은 기본적으로 당신이 할 필요가

  1. 은 [참조 (1 다음 블록을 추가, 모든 공용 클래스의 경우
  2. 대화 프로젝트 속성 어셈블리 버전 정보에 각각의 속성을 사용하여 조립 COM 볼 수 있는지 확인하다 ])

또한 .NET이 설치 폴더에있는 regasm.exe 도구를 사용하여 클래스 정의 위의 코드

  • 등록 DLL의 것은 확인 어셈블리 버전 정보 대화 상자의 응용 프로그램 이름과 설명에 설명이 포함 된 이름을 추가합니다 (나중에 COM 클래스를 선택하는 데 사용됩니다).

    [1] 클래스 정의 앞에 추가하는 코드의 블록 : 그 후

    [ClassInterface(ClassInterfaceType.AutoDual)] 
    [ProgId("SomeNameHere")] 
    [ComVisible(true)] 
    [Guid("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx")] 
    

    당신이 다른 일반 COM 클래스와 같은 클래스를 사용할 수 있어야합니다.

    편집
    내가 Excel 및 C#의 COM 클래스에 대한 경험이없는 것을 주목해야한다 - 나는 위에서 설명한 방법을 위대한 작품을 마이크로 소프트 내 비전, 함께 C#을 사용하고 있습니다.

  • 2

    저기로 나가는 책이 많이 있습니다. Wrox의 "Pro C# 2008"에는 이에 대한 훌륭한 장이 있습니다.

    또한 COM에 표시되는 COM에 관한 기사는 MSDN blog입니다.

    1

    COM 경로를 사용하기보다는 ExcelDNA과 같은 것을 사용하는 것이 훨씬 쉽습니다 (설치 문제가 적음). .NET을 사용하여 등록 할 필요가없는 XLL을 작성할 수 있습니다. 또한 오픈 소스이며 커뮤니티가 잘 지원합니다.

    +0

    나는 이것을 조사해야 할 것이다. 감사 – Nick