我遇到了一个问题,我需要更改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)
请注意: 当没有找到默认打印机时发生异常,当更改页面布局属性抛出此异常时,我需要将任何其他东西导出为exns文件作为lanscape PDF
答案 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