Невозможно установить свойство Orientation класса PageSetup в программе Excel

Я написал следующий код в.Net

excel = New Excel.Application
wBook = excel.Workbooks.Add()
wSheet = wBook.ActiveSheet()
wSheet.PageSetup.Orientation = XlPageOrientation.xlLandscape

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

Невозможно установить свойство Orientation класса PageSetup

4 ответа

Класс PageSetup в Excel должен взаимодействовать с драйверами принтера на сервере. Если драйверы принтера не установлены или доступ к ним ограничен, любые вызовы этого класса с исключением.

Убедитесь, что на сервере установлен принтер по умолчанию и установлены драйверы принтера. Кроме того, если вы обращаетесь к нему через ASP.net, существуют проблемы с доступом, и вы должны убедиться, что у учетной записи ASP.Net есть разрешение на доступ к принтеру. См. Эту статью, в которой более подробно рассматриваются некоторые проблемы: http://support.microsoft.com/?id=291298

В целом, если вы используете Office 2007 или более позднюю версию, вам следует избегать автоматизации на стороне сервера, поскольку это может привести к нестабильному поведению - по возможности используйте форматы Open XML. См. http://support.microsoft.com/kb/257757

Проверьте "принтер по умолчанию" на странице "Устройства и принтеры".

Если какой-либо (перенаправленный) принтер используется по умолчанию, измените его. Принтер по умолчанию не должен быть перенаправленным.

Я не уверен, что вы делаете приложение ASP.net. Но вот что я получил.

У меня есть ASP 4.0, и мой код в основном генерирует файл Excel. После создания файла Excel я экспортирую его в формат PDF. Это вызывает ту же проблему, что и у вас.

Чтобы решить эту проблему, установите True для профиля пользователя. Он находится в AppPool. щелкните правой кнопкой мыши, и вы увидите это свойство.

Как указала BgRva, вам необходимо установить драйверы принтера. Класс PageSetup в Excel должен взаимодействовать с драйверами принтера

У меня похожая проблема при запуске связанного кода в Windows 8, работающей под Mac Parallels (виртуальная машина). Для тех, кто занимается развертыванием Visual Studio на Mac Parallels, вот что я делаю:

  1. Отключите общий доступ к принтерам между Mac и Windows. Перейдите в Parallels (VM) > Настроить> Оборудование и нажмите Печать. Снимите флажок "Добавить все принтеры Mac" и "Синхронизировать принтер по умолчанию"
  2. Установите драйвер принтера в Windows
  3. Чтобы получить назначенный IP-адрес одним и тем же беспроводным маршрутизатором (если вам необходимо подключиться к принтеру по беспроводной сети), вам нужно настроить сеть как мостовую. Перейдите в Parallels (VM) > Конфигурировать> Оборудование> "Сеть 1" и выберите "Тип сети" в качестве аэропорта и DHCP-сервер в качестве "Авто"
Другие вопросы по тегам