Прошу прощения, если вы видели что-то подобное раньше, я как можно лучше обыскивал форумы. Я пытаюсь получить окончательный ответ на вопрос, который, как мне кажется, я видел на другом форуме, - я просто очень надеюсь, что неправильно понял ответ.
Итак, я хочу написать подпрограммы / функции vba, которые принимают параметры и извлекают данные из базы данных SQL через слой бизнес-логики C # и ExcelDNA.
Уровень C # является частью решения .Net, которое собирает запросы от нескольких приложений к нескольким базам данных. Конфиг управляется централизованно, а объекты DataAccess создаются во время выполнения на фабрике.
Типы возвращаемых данных могут различаться в зависимости от запрашивающего приложения - одни и те же данные могут запрашиваться в виде словаря, таблицы данных и т. Д. В зависимости от разрешения / доступа пользователя, входных параметров и т. Д. Бизнес-уровень будет выполнять различные действия по агрегированию и вычислению данных перед возврат объектов запрашивающим приложениям.
К сожалению, у одного пользователя есть приложение на базе Excel, которое я теперь должен интегрировать. Прочитав о VSTO, COM, надстройке автоматизации и ExcelDNA, я решил, что будет лучше добавить проект в решение, которое взаимодействует с ExcelDNA. Но после большого количества маленьких шагов по возврату простых строк из функций SQL в Excel в ячейках, теперь мне нужно попытаться вернуть DataTable (гибкий здесь) в функцию VBA. VBA будет принимать некоторые параметры, такие как имя базы данных, среда (PROD, UAT, DEV), ModelRunId, startDate, endDate ....
Но из того, что я прочитал, это невозможно. Кто-нибудь достиг этого? Я близок к написанию простого приложения для WinForms и демонстрации функциональности «Экспорт в Excel» в некоторых сетках - пусть пользователь Excel сделает всю работу…
Запись на SQL-сервер напрямую и использование таких методов, как CopyFromRecordSet, не вариант.
Заранее спасибо