无法在Excel程序中设置PageSetup类的Orientation属性

时间:2010-12-06 08:08:24

标签: .net

我在.Net

中编写了以下代码
excel = New Excel.Application
wBook = excel.Workbooks.Add()
wSheet = wBook.ActiveSheet()
wSheet.PageSetup.Orientation = XlPageOrientation.xlLandscape

当我从本地系统运行它时,它正在工作,当我将其复制到服务器并将从服务运行时发出以下错误。

无法设置PageSetup类的Orientation属性

4 个答案:

答案 0 :(得分:6)

Excel的PageSetup类必须与服务器上的打印机驱动程序进行交互。如果没有安装打印机驱动程序或限制访问它们,则对此类的任何调用都会抛出异常。

您应该确保在服务器上设置了默认打印机并且安装了打印机驱动程序。此外,如果您从ASP.net访问它有访问问题,您应该确保ASP.Net帐户有权访问打印机。请参阅此文章,其中详细介绍了一些问题:http://support.microsoft.com/?id=291298

通常,如果您使用的是Office 2007或更高版本,则应避免服务器端自动化,因为这会产生不稳定的行为 - 如果可能,请使用Open XML格式。见http://support.microsoft.com/kb/257757

答案 1 :(得分:2)

我不确定您是否正在使用ASP.net应用程序。但这就是我得到的。

我有一个ASP 4.0,我的代码基本上生成一个excel文件。生成excel文件后,我将其导出为pdf。这导致了同样的问题。

解决它的方法是设置 将用户配置文件加载为true 它在AppPool下。右键单击它,你会看到这个属性。

答案 2 :(得分:1)

正如BgRva指出的那样,您需要安装打印机驱动程序。 Excel的PageSetup类必须与打印机驱动程序通信

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

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

答案 3 :(得分:0)

在“设备和打印机”页面中选中“默认打印机”。

如果任何(重定向)打印机默认更改它。默认打印机不能是任何“重定向”的打印机。