Как вызвать функцию VSTO из формулы в Excel? - PullRequest
5 голосов
/ 09 декабря 2008

Я хотел бы иметь возможность вызывать функцию, предоставляемую надстройкой VSTO, из ячейки на листе Excel. Более конкретно, если у меня есть функция VSTO Foo (), которая возвращает «bar», я бы хотел написать = Foo () в A1, которая вычисляет «bar» при расчете.

Возможно ли это? Какие ключевые шаги мне нужно предпринять?

Перспектива использования управляемого кода и интегрированной среды разработки VS08 для разработки в Excel очень привлекательна. Я думал, что VSTO позволит мне легко сделать это, но я больше не уверен. Я неправильно понимаю архитектуру здесь? Документация немного дрянная.

Ответы [ 3 ]

2 голосов
/ 08 февраля 2013

Excel-DNA (который я разрабатываю) - это проект с открытым исходным кодом, который позволяет вам создавать пользовательские функции рабочего листа (UDF) для Excel, как вы описываете.

С помощью Excel-DNA вы также можете создавать полнофункциональные надстройки Excel, которые включают настройку ленты, макросы, функцию асинхронизации и RTD-серверы. Excel-DNA использует встроенный интерфейс Excel XLL для интеграции с Excel, поэтому вы также получаете очень хорошую производительность по сравнению с решениями, основанными на интеграции COM.

1 голос
/ 09 декабря 2008

Я не верю, что вы можете сделать это напрямую, хотя вы можете использовать оболочку VBA, см., Например, http://blogs.msdn.com/pstubbs/archive/2004/12/31/344964.aspx.

Вы также можете использовать сторонний продукт, такой как ManagedXll , для создания пользовательских функций Excel в управляемом коде.

0 голосов
/ 23 июня 2010

Я думаю, что вы можете использовать COM Interop .. вот веб-страница, где я видел описанный процесс.

http://www.cpearson.com/excel/creatingnetfunctionlib.aspx

...