2009-07-08 63 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

相關問題