2009-07-08 5 views
2

Kann mir jemand sagen, wie Sie den Zoomfaktor in einer Excel-Tabelle über eine ASP.NET-Anwendung festlegen. Ich glaube, das Excel-Sheet-Objekt hat eine PageSetup.Zoom Eigenschaft, die nicht zu funktionieren scheint. Wenn ich einen Bericht in Excel programmgesteuert durch ASP.NET erzeuge, erhalte ich den Zoomfaktor aller Blätter in der Arbeitsmappe als 100%.In EXCEL aus einer ASP.NET-Anwendung herunterzoomen

Hier ist ein Codebeispiel

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; 

Eine weitere Option ActiveWindow.Zoom wie erzeugt durch einen Makro ist, aber es ist Makro-spezifisch. Der Hauptpunkt der Frage ist, nachdem der Bericht erstellt wurde, der Zoomfaktor aller Seiten in der Excel-Arbeitsmappe sollte 85% sein. Alle Eingaben würden sehr geschätzt.

Antwort

1

PageSetup wirkt sich nur auf das Drucken aus. Sie müssen den Fensterzoom verwenden. In C# ist es so etwas wie:

Dies betrifft nur das Blatt im aktiven Fenster, nicht jedes Blatt. Sie können den Zoom auch über die Arbeitsmappe (wbk.Windows[0].Zoom) anstatt über xlApp.ActiveWindow festlegen.

Der Weg, dies in einem Workbook Objekt für alle Blätter zu implementieren MyWorkbook alle Blätter auszuwählen, und drücken Sie dann die Active:

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

ich diese getestet und Windows [1] scheint um Ihnen die Anpassung auf Dokumentebene zu ermöglichen. Ich hatte ein Problem damit, diesen Code in das Startup-Ereignis der Arbeitsmappe einzubetten, aber es scheint in der nächsten Zeit in Ordnung zu sein.

3

können Sie den Zoomfaktor von einer Excel-Arbeitsblatt wie folgt festgelegt:

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

Microsoft nicht und gegen in ASP.NET mithilfe von Office mit COM-Interop empfiehlt (siehe diesen Considerations for server-side Automation of Office KB-Artikel).

Sie können live C# und VB Beispiele sehen, die mit SpreadsheetGear von ASP.NET here demonstrieren und laden Sie eine kostenlose Testversion here.

Haftungsausschluss: Ich besitze SpreadsheetGear LLC

Verwandte Themen