Доступ к данным Excel - PullRequest
1 голос
/ 11 июля 2011

Я пытаюсь разработать решение для доступа к данным в Excel 2010 (и предыдущих версиях). Ниже перечислены некоторые требования / ограничения высокого уровня:

  • Данные хранятся в базе данных.
  • Пользователи не должны иметь возможность подключаться к базе данных напрямую.
  • Типы доступа к данным, которые им, вероятно, понадобятся, будут использоваться другими приложениями.
  • Пользователи захотят работать с данными, напрямую импортируя их в рабочие таблицы, а также через VBA.

Насколько я знаю, я подумал о следующем

  • WCF Сервис
    • Может использоваться другими приложениями
    • Введет задержку (если это проблема)
    • Не может использоваться непосредственно в рабочей таблице без VBA?
  • Службы данных WCF
    • Может использоваться другими приложениями
    • Более хорошая модель для выставления (через EF) и работы с (RESTful, OData)
    • Введет задержку (если это проблема)
    • Может потребляться PowerPivot напрямую
    • Не может использоваться непосредственно в рабочей таблице без VBA?
    • Совместимо только с 2010 без VBA
  • Веб-запрос
    • Требуется больше усилий для сборки (потребуется собрать фасад ASP.NET перед базой данных)
    • Может потребляться непосредственно в рабочей таблице без VBA
    • Совместим со всеми необходимыми версиями Excel
    • Плохой механизм предоставления данных для других приложений (не в Excel)

Я начинаю думать, что не существует единого размера, все решение не существует, и ему придется создать интерфейс для прямого доступа к рабочему листу и другой интерфейс для всего остального, будь то служба данных типа SOAP или REST.

У кого-нибудь есть предложения / опыт?

Спасибо

1 Ответ

0 голосов
/ 11 июля 2011

Я думаю, что вы можете обойтись без одного интерфейса и просто выставить две конечные точки, одну для SOAP и одну для REST (или, возможно, вам даже не нужна конечная точка SOAP?). Мне кажется, это лучшее из обоих миров. Похоже, он будет соответствовать вашим требованиям (Excel / PowerPivot может использовать службы RESTful) и не позволит вам дублировать код.

Взгляните на этот ТАК вопрос для примера .

...