pagesetup excel工作表,我没有对打印机的访问控制

时间:2014-01-05 20:10:52

标签: c# excel vba excel-vba printing

我遇到了一个问题,我需要更改excel页面设置(方向缩放或任何属性,但默认打印机不可用,我没有渗透访问打印机或发现这样的代码)提出异常。

xlApp = new Excel.Application();
book = xlApp.Workbooks.Open(fileFullPath);
xlApp.Visible = false;
xlApp.DisplayAlerts = false;                    
var with1 = book.Worksheets[sheetName].PageSetup;
with1.zoom = false;
with1.FitToPagesWide = 1;
with1.FitToPagesTall = 1;
with1.Orientation = XlPageOrientation.xlLandscape;

例外是:

Exception: System.Runtime.InteropServices.COMException
Message: Unable to set the Zoom property of the PageSetup class
Target Site: Void CheckThrowException(Int32, System.Dynamic.ExcepInfo ByRef, UInt32, System.String)
Source: Microsoft Excel
Stack Trace: at System.Dynamic.ComRuntimeHelpers.CheckThrowException(Int32 hresult, ExcepInfo& excepInfo, UInt32 argErr, String message)
at CallSite.Target(Closure , CallSite , ComObject , Boolean )
at System.Dynamic.UpdateDelegates.UpdateAndExecute2[T0,T1,TRet](CallSite site, T0 arg0, T1 arg1)
at CallSite.Target(Closure , CallSite , Object , Boolean )
at System.Dynamic.UpdateDelegates.UpdateAndExecute2[T0,T1,TRet](CallSite site, T0 arg0, T1 arg1)
at ExcelProcessing.ThumbGeneration.ExcelSheetSnapShoot(String fileFullPath, String thumbDir, String sheetName, String thumbResolution, String cropArea, String PDFFilesDir)

请注意: 当没有找到默认打印机时发生异常,当更改页面布局属性抛出此异常时,我需要将任何其他东西导出为ex​​ns文件作为lanscape PDF

1 个答案:

答案 0 :(得分:0)

这不是答案,但它不适合评论,所以我把它放在这里。

我想检查相同的步骤是否适用于其他Excel会话而不是C#。

尝试启动Excel创建此宏并运行它。它将像C#函数一样创建第二个Excel会话。我在电脑里尝试过它。

如果有效,那很可能是.net。

的问题

如果没有,则很可能是隐藏会话正在打开的文件存在问题。

Sub Test()
  Dim Exl As New Application, Wb As Workbook, PS As PageSetup
  Set Wb = Exl.Workbooks.Open("Test.xls")
  Set PS = Wb.ActiveSheet.PageSetup
  PS.Zoom = False
  PS.FitToPagesWide = 1
  PS.FitToPagesTall = 1
  PS.Orientation = XlPageOrientation.xlLandscape
  Exl.Quit
End Sub