Какие (если таковые имеются) (бесплатные) альтернативы COM-взаимодействию с MS Excel с использованием .NET? - PullRequest
2 голосов
/ 18 февраля 2012

Предыстория: я пытаюсь принять решение о том, идти ли дальше по пути автоматизации Excel с использованием C # через Interop.Я, конечно, не VBA парень, и по многим причинам я бы предпочел не идти по этому пути.Я не знаю много о других вариантах, и я действительно не собираюсь ничего покупать.

Производительность очень важна.

Я пытался найти ссылки на использование Interop для автоматизацииExcel и кажется довольно скудным.Некоторые из лучших вещей датированы , а другие ссылки просто не охватывают большую часть материала.Многие люди ссылаются на тот факт, что многие существующие материалы тратят время на изучение различий в версии MS Office.Мне также интересно, являются ли существенными улучшения, которые были заявлены при переходе на .NET 4.

Редактировать: суть того, что я пытаюсь сделать, - это полная автоматизация довольно сложного и сложного форматирования.как некоторый довольно тяжелый анализ (линейная регрессия).Мне нужно составить график данных, проанализированных / рассчитанных, и форматирование диаграммы действительно важно, потому что МВА, с которыми я работаю, говорит, что это так.Я думаю, что все это возможно через VBA, но я не знаю наверняка, потому что я не парень VBA.Подумайте о типах макросов со скрытым приложением, чтобы оно работало как фоновый процесс.Производительность имеет решающее значение (одна из причин, по которой я подвергаю сомнению уместность COM).VBA может даже не присутствовать на столе из-за соображений производительности.

Теперь по вопросу.

Лучший способ, которым я могу задать это кратко: есть ли список бельячто вы не можете сделать с Interop в Excel, что вы хотели бы сделать ?Как вы справились с этим в своем опыте разработки?

Если на самом деле нет ничего, что вы не могли бы сделать с Interop (см. Комментарии ниже), и это лучше всего подходит для того, что я собираюсь сделать, как лучше научиться использовать его , учитывая, что COM и объектная модель Excel могут быть довольно пугающим делом.Есть ли действительно хорошие ссылки там?

Если есть лучший способ для меня, чтобы описать выше, вы можете рассказать мне об этом?ДНК ДНК упоминалась, но я не вижу, чтобы это было намного более полезным, чем создание пользовательских функций C #, которые могут где-то попасть в приложение или базу данных серверного сервера.

1 Ответ

2 голосов
/ 18 февраля 2012

Нет правильного ответа на ваши вопросы: все зависит от деталей и фона.

Производительность взаимодействия при взаимодействии с объектной моделью Excel (получение / размещение диаграмм форматирования данных и т. Д.) Всегда будет относительно медленной из-за дополнительных слоев поверх COM.
Скорость расчета .Net может быть быстрее, чем скорость расчета VBA, особенно при плохо написанном коде VBA.
.NET Framework намного мощнее и сложнее, чем VBA.
Объектная модель Excel является большой и сложной. Макро-рекордер VBA может помочь в этом, но выдает ужасный код.
Интерфейс XLL быстрее, чем COM, но предоставляет меньше объектной модели Excel.

Исходя из вашего описания, я предполагаю, что вы получите лучшую производительность, простоту обучения и использования с VBA, чем с .NET, потому что кажется вероятно, что большая часть времени будет потрачена на взаимодействие с объектной моделью, а не на вычисления линейной регрессии (которые не являются ИМХО особенно ресурсоемкими). ​​
Но, конечно, другие соображения могут заставить вас предпочесть .NET

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...