Excel到PDF导出 – 页码限制

我正在使用C#将Excel文件转换为PDF。 这是我到目前为止的代码:

Excel.Application excelApp = new Excel.Application(); excelApp.Workbooks.Open(infile, 0, false, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0); excelApp.ActiveWorkbook.ExportAsFixedFormat(Excel.XlFixedFormatType.xlTypePDF, outfile); excelApp.DisplayAlerts = false; excelApp.SaveWorkspace(); excelApp.Quit(); 

这部分工作,但有时我有一个文件比20列多,输出“打破”到PDF上的多个页面。

有什么办法可以控制我想允许多less“rest”?

例如。 比方说,该表有25列
我把一个数字例如。 3
前5列打印在第1页上
接下来的5列打印在第2页上
接下来的5列打印在第3页上
并停止执行(或继续下一页)

我认为答案是在这个地方(但我不太清楚):

 ((Microsoft.Office.Interop.Excel._Worksheet)excelApp.ActiveSheet).PageSetup.Pages 

您应该能够通过PageSetup类完成此操作并select适当的PrintArea。 对于PDF转换,我们使用“FitToPages”function缩放视图,以便每个工作表只占用一页宽。

 _Workbook document = application.Workbooks.Open(FileName, oFalse, oTrue, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oFalse, oFalse, oMissing, oFalse, oFalse, oFalse); foreach (Worksheet ws in document.Worksheets.OfType<Worksheet>()) { ws.PageSetup.Orientation = XlPageOrientation.xlLandscape; ws.PageSetup.Zoom = false; ws.PageSetup.FitToPagesWide = 1; ws.PageSetup.FitToPagesTall = false; } document.ExportAsFixedFormat(fxFormat, fileName, oMissing, oMissing, oFalse, oMissing, oMissing, oFalse, oMissing); 

或者您可以设置打印区域而不是缩放:

  // Specified in the same range format as the UI ws.PageSetup.PrintArea = "a1-e50"; 

您可能需要从ws中获取使用的列和行。 UsedRange属性提供正确的打印区域。 确保当您调用“ExportAsFixedFormat”时,您为IgnorePrintAreas参数提供了false。