Предоставление методов .net в качестве функций Excel? - PullRequest
6 голосов
/ 10 сентября 2008

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

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

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

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

=CalculateSomethingReallyComplex(A1, B1)

Как лучше всего это сделать?

Ответы [ 2 ]

8 голосов
/ 09 января 2009

Вам также следует взглянуть на 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.

3 голосов
/ 10 сентября 2008

Существует два метода - вы можете использовать Visual Studio Tools for 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 должен работать нормально.

...