【问题标题】:pagesetup excel Worksheets and i didn't have access control to printerpagesetup excel Worksheets,我没有对打印机的访问控制
【发布时间】:2014-01-05 20:10:52
【问题描述】:

我遇到了需要更改 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)

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

【问题讨论】:

  • 哪里有什么例外? (xlApp.Visible = false 没用,因为创建后是不可见的)
  • 我添加了当前用户无法访问默认打印机(找不到打印机或没有权限)时发生此错误的异常

标签: c# vba excel printing


【解决方案1】:

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

我想检查相同的步骤是否适用于另一个 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

【讨论】:

  • 当没有找到默认打印机时发生异常,更改页面布局属性时会抛出此异常,因此我需要任何其他操作将 excel 文件导出为 lanscape PDF
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多