Excel C # Interop vs. Excel VBA - PullRequest
       11

Excel C # Interop vs. Excel VBA

3 голосов
/ 05 октября 2011

Я отвечаю за поиск узких мест в надстройке Excel. Некоторые из рабочих книг вычисляются крайне медленно. У меня есть опыт работы с кодом VBA, и более старые версии нашего продукта использовали весь код VBA для выполнения вычислений. Однако в более новых версиях продукта большая часть вычислений выполняется с помощью надстройки, которая построена поверх ASP.NET C # с использованием библиотек Excel.Interop. У меня такой вопрос: библиотеки взаимодействия работают медленнее, чем код, который находится непосредственно в рабочей книге в VBA? По моему опыту, все проекты, использующие Excel.Interop, выполняются крайне медленно при интенсивных вычислениях. Если да, есть ли у кого-нибудь совет по ускорению процессов и функций Excel.Interop?

Спасибо.

1 Ответ

4 голосов
/ 05 октября 2011

Interop имеет значительно более высокие издержки, чем VBA, для вызовов объектной модели и вызовов передачи данных.Стоит усердно работать, чтобы свести к минимуму количество звонков.Возможно, вы захотите посмотреть в моем блоге сравнение технологий Excel UDF: Выбор технологии UDF

Если вы можете использовать Addin-Express или Excel DNA, я бы порекомендовал оба продукта.Для общих советов по оптимизации скорости расчета я рекомендую мой сайт или мои документы MSDN .

...