2013-03-22 2 views
1

настройки страницы Я пытаюсь напечатать таблицу Excel с помощью VB.NET, но я получаю сообщение об ошибкеНевозможно установить свойство PaperSize класса

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

настройки страницы

Вот мой код,

Dim oldCI As System.Globalization.CultureInfo = System.Threading.Thread.CurrentThread.CurrentCulture 
    System.Threading.Thread.CurrentThread.CurrentCulture = New System.Globalization.CultureInfo("en-US") 

    With application 
     .AutomationSecurity = Microsoft.Office.Core.MsoAutomationSecurity.msoAutomationSecurityForceDisable 
     .Visible = False 
     .EnableEvents = False 
     .DisplayAlerts = False 
     .ScreenUpdating = False 
    End With 

    Dim workbook As Excel.Workbook 
    Dim worksheet As Excel.Worksheet 
    'Open as readonly and do not update links 
    workbook = application.Workbooks.Open(_fileName, 2, True) 

    For Each worksheet In workbook.Worksheets 
     worksheet.PageSetup.PaperSize = _paperSize 
    Next 

    workbook.PrintOutEx() 
    workbook.Close(False) 
    application.Quit() 

    System.Threading.Thread.CurrentThread.CurrentCulture = oldCI 

    worksheet = Nothing 
    application = Nothing 

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

+0

Неудачно ли это в первую очередь? Или на конкретном листе? –

+0

Какие ошибки вы получаете? Вы правильно используете enum? http://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel.xlpapersize.aspx –

+0

Ошибка в первом случае – user65439

ответ

0

Вы можете использовать автоматизации делопроизводства, чтобы изменить размер страницы что-то вроде этого

worksheet.PageSetup.PaperSize = WdPaperSize.wdPaperLetter 

или выбрать любой другой тип бумаги из списка на «WdPaperSize.»

надеюсь, вам это поможет.

+1

Если вы посмотрите на код выше, это было сделано для каждого листа – user65439

3

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

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

  1. Отключить обмен принтерами между Mac и Windows. Перейдите в Parallels (VM)> Настроить> Оборудование и нажмите «Печать». Снимите флажок «Добавить все Mac принтерам» и «Синхронизировать принтер по умолчанию»
  2. Установите драйвер принтера на Windows,
  3. Для того, чтобы получить назначенный IP-адрес в том же беспроводном маршрутизаторе (если необходимо подключить к принтеру по беспроводной сети), вы необходимо настроить сетевое соединение . Перейти к Parallels (VM)> Настройка> Hardware> 'Network 1' и выберите тип Networking как аэропорт и сервер DHCP, как Auto
0

Вопрос в ядро ​​в _paperSize постоянной. В моем случае, он давал ту же самую ошибку на: (простите C#)

worksheet.PageSetup.PaperSize = Excel.XlPaperSize.xlPaperLedger; 

в зависимости от принтера, например, размер бумаги «гроссбух» может быть определен как 11x17 или Tabloid. Узнайте, что драйвер печати ссылается на страницу проклейки, а затем

НЕ РАБОТАЕТ:

excel.ActiveSheet.PageSetup.PaperSize = Excel.XlPaperSize.xlPaperLedger 

excel.ActiveSheet.PageSetup.PaperSize = Excel.XlPaperSize.xlPaper11x17 

РАБОТАЛ:

excel.ActiveSheet.PageSetup.PaperSize = Excel.XlPaperSize.xlPaperTabloid 

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

Смежные вопросы