2010-12-06 24 views
4

我已经写了下面的代码在.net无法设置PageSetup类的方向属性在Excel程序

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

当我运行这个本地系统正这是工作,当我这个复制到服务器和将从提供以下错误的服务运行。

无法设置PageSetup类

回答

5

PageSetup类的Excel必须与服务器上的打印机驱动程序进行交互的方向属性。如果没有安装打印机驱动程序或对其进行访问受限,则对此类的任何调用都会引发异常。

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

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

1

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

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

  1. 禁用打印机在Mac和Windows之间共享。转至Parallels (VM)>配置>硬件,然后单击打印。取消选中“添加所有的Mac 打印机”和“同步默认打印机”
  2. 安装打印机的驱动程序在Windows
  3. 为了通过相同的无线路由器 获得分配的IP地址(如果你需要连接到打印机无线),你需要将桥接设置为 。转到Parallels的 (VM)>配置>硬件>“网络1”,然后选择网络类型为机场和DHCP服务器自动
2

我不知道,如果你正在做的ASP.net应用。但这是我得到的。

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

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

0

检查“设备和打印机”页面中的“默认打印机”。

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