.СЕТЬ:Если мой .NET автоматизирует Office, должен ли клиент устанавливать Office?

StackOverflow https://stackoverflow.com/questions/403118

  •  03-07-2019
  •  | 
  •  

Вопрос

Если я создаю программу, которая в одной небольшой отдаленной области использует автоматизацию Excel:

произойдет ли сбой приложения, когда понадобится Excel

или приложение не запустится?


Обновлять

Позвольте мне задать тот же вопрос, но более развернуто:

Будет ли приложение использоваться

  • 99,9% пользователей, которые никогда не используют функцию, требующую Excel

  • 0% пользователей, так как Excel не установлен.

Позвольте мне задать тот же вопрос по-другому:

Не удастся ли инициализировать приложение, которое ссылается на DLL COM-взаимодействия?


Позвольте мне задать тот же вопрос по-другому:

Не запустится ли приложение, которое не использует Excel, но ссылается на DLL COM-взаимодействия?


Позвольте мне задать тот же вопрос по-другому:

Будет ли использоваться приложение, не использующее Excel, если Excel не установлен, если это приложение зависит от библиотек Office Primary Interop?


Позвольте мне задать тот же вопрос по-другому:

Если мое приложение не использует Excel, должен ли пользователь установить Excel?

Это было полезно?

Решение

Код будет корректно выполняться до тех пор, пока не попытается выполнить вызов библиотек автоматизации; в этот момент он сгенерирует исключение.

Другие советы

У меня есть приложение, использующее автоматизацию Excel, и я могу с уверенностью сказать, что оно не будет работать во время выполнения, а не во время загрузки.На самом деле мы проверяем, установлен ли он вообще, и показываем кнопку «Показать данные в Excel», только если находим его (но PIA развертываются для всех установок).

Если вы автоматизируете Office...у тебя должен быть Офис!

Однако ответ изменится, если вы измените вопрос так:Могу ли я создать электронную таблицу Excel, не имея Excel на клиенте?

Для этого существует множество сторонних средств управления;вы можете писать непосредственно в спецификацию XML MS SpreadML (http://msdn.microsoft.com/en-us/library/aa140066(office.10).aspx;или используйте сторонние библиотеки, которые это делают (например, http://www.carlosag.net/Tools/ExcelXmlWriter/).

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

ОБНОВЛЯТЬ:Время выполнения должно означать, когда оно вам нужно!

При использовании COM в Win32 при необходимости произойдет сбой.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top