我在.Net
中编写了以下代码excel = New Excel.Application
wBook = excel.Workbooks.Add()
wSheet = wBook.ActiveSheet()
wSheet.PageSetup.Orientation = XlPageOrientation.xlLandscape
当我从本地系统运行它时,它正在工作,当我将其复制到服务器并将从服务运行时发出以下错误。
无法设置PageSetup类的Orientation属性
答案 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部署的任何人来说,这就是我正在做的事情:
答案 3 :(得分:0)
在“设备和打印机”页面中选中“默认打印机”。
如果任何(重定向)打印机默认更改它。默认打印机不能是任何“重定向”的打印机。