2009-07-08 18 views
2

ASP.NETアプリケーションを介してExcelシートにズーム係数を設定する方法を教えてもらえますか? Excelシートオブジェクトに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; 

これは、すべてのシートではなく、アクティブなウィンドウのシートにのみ影響します。 xlApp.ActiveWindowではなく、ブック(wbk.Windows[0].Zoom)でズームを設定することもできます。

Workbookオブジェクト内のすべてのシートのためにこれを実装する方法がは、すべてのシートを選択することですMyWorkbook、その後ヒットのActiveWindow:私はこれをテストし

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

は、Windowsは、[1]と思われますドキュメントレベルのカスタマイズを提供します。ワークブックのStartupイベントにこのコードを埋め込むのに問題がありましたが、それはさらに細かいことになります。

3

は、あなたがこのようなExcelワークシートのズーム倍率を設定することができます:

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

MicrosoftがサポートしてASP.NETでのCOM相互運用機能(このConsiderations for server-side Automation of Officeキロバイトの記事を参照)を使用してOfficeを使用しないことをお勧めしていません。

ASP.NET hereからSpreadsheetGearを使って実演しているライブのC#とVBの例を見ることができ、無料のトライアルをダウンロードできます。

免責事項:私はSpreadsheetGear LLCを所有しています

関連する問題