2009-10-13 6 views
0

Я вижу много в Интернете о VSTO и автоматизации excel от C#, но очень мало, чтобы начать работу по сборке C#, чтобы сделать его видимым из Excel.com interop: как потреблять C# из Excel или Access

Может ли кто-нибудь указать мне на очень базовую информацию, объясняющую, как создать COM-интерфейс, GUIDS, ComVisible и т. Д.?

ответ

2

В основном все, что вам нужно сделать, это

  1. Сделайте узел COM видимым с помощью соответствующего атрибута в информации проекта версии Ассамблеи свойства диалоговой
  2. Для каждого общественного класса, добавьте следующий блок (см [1 ]) кода выше определения класса
  3. Регистрация DLL с помощью regasm.exe инструмента находится в папке .NET 2 установки

Кроме того, убедитесь, добавить описательное имя для имени и описания приложения в диалоговом окне информации о версии сборки (позже они используются для выбора классов COM).

[1] Блок кода, чтобы добавить до определения класса:

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

После того, что вы должны быть в состоянии использовать этот класс, как и любой другой нормальный COM класса.

EDIT
Следует отметить, что у меня нет опыта работы с Excel и C# COM классов - Я использую C# вместе с Microsoft Navision, который прекрасно работает так, как я описал выше.

2

Есть много книг, которые могут вас поймать. «Pro ​​C# 2008» от Wrox имеет отличную главу об этом.

Также есть статья MSDN blog о COM Visible to Excel.

1

Вместо того, чтобы спускаться по COM-маршруту, значительно проще (и меньше проблем с установкой) использовать что-то вроде ExcelDNA. Это позволяет вам писать XLL в .Net, которые не требуют регистрации. Он также поддерживается с открытым исходным кодом и очень хорошо поддерживается сообществом.

+0

Мне нужно будет изучить это. благодаря – Nick

Смежные вопросы