Вопрос

У меня есть набор методов расчета, находящихся в .Net DLL.Я хотел бы сделать эти методы доступными для пользователей Excel (2003+), чтобы они могли использовать их в своих таблицах.

Например, мой метод .net:

public double CalculateSomethingReallyComplex(double a, double b) {...}

Я хотел бы позволить им вызывать этот метод, просто введя формулу в случайную ячейку:

=CalculateSomethingReallyComplex(A1, B1)

Каким будет лучший способ добиться этого?

Это было полезно?

Решение

Есть два метода: вы можете использовать инструменты Visual Studio для Office (VSTO):

http://blogs.msdn.com/pstubbs/archive/2004/12/31/344964.aspx

или вы можете использовать COM:

http://blogs.msdn.com/eric_carter/archive/2004/12/01/273127.aspx

Я не уверен, будет ли метод VSTO работать в более старых версиях Excel, но метод COM должен работать нормально.

Другие советы

Вам также следует взглянуть на ExcelDna (http://www.codeplex.com/exceldna).ExcelDna — это проект с открытым исходным кодом (также бесплатный для коммерческого использования), который позволяет создавать собственные надстройки .xll с использованием .Net.Могут быть созданы как пользовательские функции (UDF), так и макросы.Код надстройки может находиться в текстовых файлах сценариев, содержащих код VB, C# или F#, или в управляемых DLL-файлах.

Поскольку используются собственные интерфейсы Excel SDK, а не автоматизация на основе COM, надстройки на основе ExcelDna можно легко развернуть и не требуют регистрации.ExcelDna поддерживает версии Excel от Excel '97 до Excel 2007 и включает поддержку типов данных Excel 2007 (большие листы и строки Unicode), а также многопоточный пересчет в Excel 2007.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top