Для печати вы можете использовать метод Worksheet.PrintOut () . Вы можете опустить любой или все необязательные аргументы, передав Type.Missing . Если вы пропустите все из них, по умолчанию будет распечатана одна копия с вашего активного принтера. Но вы можете использовать аргументы, чтобы установить количество копий для печати, сопоставления и т. Д. См. Справку по методу Worksheet.PrintOut () для получения дополнительной информации.
Пример, который они показывают в файле справки:
private void PrintToFile()
{
// Make sure the worksheet has some data before printing.
this.Range["A1", missing].Value2 = "123";
this.PrintOut(1, 2, 1, false, missing, true, false, missing);
}
Но если вам не нужно изменять настройки по умолчанию, вы можете просто передать Type.Missing для всех аргументов. Вот пример использования автоматизации, чтобы открыть книгу Excel, распечатать первую страницу, а затем завершить работу:
void PrintMyExcelFile()
{
Excel.Application excelApp = new Excel.Application();
// Open the Workbook:
Excel.Workbook wb = excelApp.Workbooks.Open(
@"C:\My Documents\Book1.xls",
Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing,Type.Missing,Type.Missing);
// Get the first worksheet.
// (Excel uses base 1 indexing, not base 0.)
Excel.Worksheet ws = (Excel.Worksheet)wb.Worksheets[1];
// Print out 1 copy to the default printer:
ws.PrintOut(
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing);
// Cleanup:
GC.Collect();
GC.WaitForPendingFinalizers();
Marshal.FinalReleaseComObject(ws);
wb.Close(false, Type.Missing, Type.Missing);
Marshal.FinalReleaseComObject(wb);
excelApp.Quit();
Marshal.FinalReleaseComObject(excelApp);
}
Надеюсь, это поможет!
Mike