Автоматизация Excel OLE в сервисе Windows - PullRequest
2 голосов
/ 19 февраля 2020

У меня есть Windows заполнение ячеек службы в книге Excel с помощью OLE Automation.

Процесс сохранения не работает, файл никогда не сохраняется. Но когда это делается в приложении GUI, процесс сохранения работает.

Пользователь службы является учетной записью администратора. Я подозреваю, что взаимодействие с рабочим столом.

Есть идеи?

1 Ответ

6 голосов
/ 19 февраля 2020

Не делай этого. Найдите другое решение. Microsoft не поддерживает и не рекомендует OLE-автоматизацию программного обеспечения Office из любого места, кроме сеанса рабочего стола на рабочей станции. Я не могу перефразировать ничего лучше, чем то, что они говорят напрямую, поэтому вот совет (ссылка выше идет более подробно):

Все текущие версии Microsoft Office были разработаны, протестированы и настроены для работы как продукты конечного пользователя на клиентской рабочей станции. Они предполагают наличие интерактивного рабочего стола и профиля пользователя. Они не обеспечивают уровень повторного входа или безопасности, который необходим для удовлетворения потребностей серверных компонентов, предназначенных для автоматической работы.

В настоящее время Microsoft не рекомендует и не поддерживает автоматизацию Microsoft Office. приложения из любого автоматического неинтерактивного клиентского приложения или компонента (включая ASP, ASP. NET, DCOM и службы NT), поскольку Office может демонстрировать нестабильное поведение и / или тупиковую блокировку при запуске Office в этой среде. .

Если вы создаете решение, работающее в контексте на стороне сервера, вы должны попытаться использовать компоненты, которые были сделаны безопасными для автоматического выполнения. Или вы должны попытаться найти альтернативы, которые позволяют хотя бы части кода работать на стороне клиента. Если вы используете приложение Office из серверного решения, приложению не хватит многих необходимых возможностей для успешной работы. Кроме того, вы будете рисковать стабильностью вашего общего решения.

Если вам нужен сервис для хранения данных, база данных, вероятно, будет хорошим выбором. Любые пользователи, которым требуются данные в электронной таблице Excel, могут заполнять свои документы из базы данных. Вы даже можете настроить шаблоны документов для этого автоматически.

...