无法设置 PageSetup 类的 PaperSize 属性

And*_*ard 6 vb.net excel

我正在尝试使用 VB.NET 打印 Excel 电子表格,但出现错误

无法设置 PageSetup 类的 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
Run Code Online (Sandbox Code Playgroud)

这段代码在我的开发机器上工作,一旦我部署到测试服务器,代码就会失败。服务器上已经安装了默认打印机驱动程序。

X S*_*ham 7

您需要安装打印机驱动程序。Excel 的 PageSetup 类必须与打印机驱动程序交互

我在 Mac Parallels(虚拟机)下运行的 Windows 8 上运行相关代码时遇到了类似的问题。对于在 Mac Parallels 上进行 Visual Studio 部署的任何人,这就是我正在做的事情:

  1. 禁用 Mac 和 Windows 之间的打印机共享。转至 Parallels (VM) > 配置 > 硬件,然后单击打印。取消选中“添加所有 Mac 打印机”和“同步默认打印机”
  2. 在 Windows 上安装打印机驱动程序
  3. 为了获得同一无线路由器分配的 IP 地址(如果您需要无线连接打印机),您需要将网络设置为桥接。转到 Parallels (VM) > Configure > Hardware > 'Network 1' 并选择 Networking type as Airport 和 DHCP server as Auto


小智 0

您可以使用办公自动化来更改页面大小,如下所示

worksheet.PageSetup.PaperSize = WdPaperSize.wdPaperLetter
Run Code Online (Sandbox Code Playgroud)

或从“WdPaperSize”下拉列表中选择任何其他纸张类型。

希望对你有一点帮助。