2009-07-08 3 views
2

Может ли кто-нибудь сказать мне, как установить коэффициент масштабирования на листе Excel через приложение ASP.NET. Я считаю, что объект Excel Sheet имеет свойство PageSetup.Zoom, которое, похоже, не работает. Когда я генерирую отчет в Excel программно через ASP.NET, я получаю коэффициент масштабирования всех листов в книге как 100%.Уменьшить EXCEL из приложения ASP.NET

Вот пример кода

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 влияет только на печать. Вам необходимо использовать окно Zoom. В 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], кажется чтобы дать вам настройку на уровне документа. У меня возникла проблема с вложением этого кода в событие Startup в книге, но, похоже, оно еще хуже.

3

позволяет установить коэффициент масштабирования на листе Excel, как это:

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

Microsoft не поддерживает и рекомендует с помощью Office с COM Interop в ASP.NET (см это Considerations for server-side Automation of Office KB статьи).

Вы можете увидеть прямые примеры C# и VB, которые демонстрируют использование SpreadsheetGear из ASP.NET here и загружают бесплатную пробную версию here.

Отказ от ответственности: У меня есть SpreadsheetGear LLC