2009-07-08 54 views
2

任何人都可以告诉我如何通过ASP.NET应用程序在Excel工作表上设置缩放系数。我相信Excel Sheet对象有一个PageSetup.Zoom属性,它似乎没有工作。当我通过ASP.NET以编程方式生成Excel报表时,我将工作簿中所有工作表的缩放因子设置为100%。从ASP.NET应用程序缩小EXCEL

下面是一个代码样品

oSheet.PageSetup.CenterHorizontally = true; 
oSheet.PageSetup.CenterVertically = true; 
oSheet.PageSetup.Orientation = XlPageOrientation.xlPortrait; 
oSheet.PageSetup.PaperSize = XlPaperSize.xlPaperA4; 
oSheet.PageSetup.Order = XlOrder.xlDownThenOver; 
oSheet.PageSetup.Zoom = 85; 

另一种选择是ActiveWindow.Zoom如由宏生成,但它是宏特定的。提出这个问题的要点是在生成报告之后,Excel工作簿中所有页面的缩放因子应该是85%。 任何输入将不胜感激。

回答

1

PageSetup只影响打印。你需要使用窗口缩放。在C#中是这样的:

Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application(); 
xlApp.ActiveWindow.Zoom = 150; 

这只影响活动窗口中的工作表,而不是每个工作表。您还可以通过工作簿(wbk.Windows[0].Zoom)而不是xlApp.ActiveWindow设置缩放。

实施本作在Workbook对象所有表的方式MyWorkbook是选择所有的表,然后打的ActiveWindow

MyWorkbook.Sheets.Select(Type.Missing); 
MyWorkbook.Windows[1].Zoom = 150; 

我试用了一下Windows的[1]似乎为您提供文档级定制。我在将这些代码嵌入到工作簿的启动事件中时遇到了问题,但似乎没有问题。

3

允许你设置一个Excel工作表这样的变焦倍数:

SpreadsheetGear.IWorkbook workbook = SpreadsheetGear.Factory.GetWorkbook(); 
SpreadsheetGear.IWorksheet worksheet = workbook.Worksheets[0]; 
worksheet.WindowInfo.Zoom = 150; 

微软不支持,并建议不要使用Office与COM互操作在ASP.NET(见本Considerations for server-side Automation of Office知识库文章)。

您可以看到使用ASP.NET here中的SpreadsheetGear演示的实时C#和VB示例,并下载免费试用版here

声明:我自己的SpreadsheetGear LLC