2009-05-12 19 views

Odpowiedz

20

Aby wydrukować, można skorzystać z metody Worksheet.PrintOut(). Możesz pominąć dowolne lub wszystkie opcjonalne argumenty, przekazując w Type.Missing. Jeśli pominiesz wszystkie, domyślnie wydrukuje jedną kopię z aktywnej drukarki. Ale możesz użyć argumentów, aby ustawić liczbę kopii do drukowania, sortowania itp. Więcej informacji znajdziesz w pomocy na temat metody Worksheet.PrintOut().

Przykład pokazują one w pliku pomocy jest:

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); 
} 

Ale chyba trzeba zmienić ustawienia domyślne, można po prostu przejść w Type.Missing dla wszystkich argumentów. Oto przykład korzystania z automatyzacji do otwierania skoroszytu programu Excel, drukowania pierwszej strony, a następnie zamykania:

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); 
} 

Mam nadzieję, że to pomoże!

Mike

+0

bardzo dziękuję !!! to było BARDZO pomocne! – yeahumok

+0

Fajnie, cieszę się, że mogę pomóc. :-) –

+0

nie wiadomo, jak wyświetlić dialog drukowania zamiast od razu wydrukować dokument ... czy tak? – yeahumok

1

Ważne poprawa jest kod dla wybierz drukarkę, na przykład:

var printers = System.Drawing.Printing.PrinterSettings.InstalledPrinters; 

int printerIndex = 0; 

foreach(String s in printers) 
{ 
    if (s.Equals("Name of Printer")) 
    { 
     break; 
    } 
    printerIndex++; 
} 

xlWorkBook.PrintOut(Type.Missing, Type.Missing, Type.Missing, Type.Missing,printers[printerIndex], Type.Missing, Type.Missing, Type.Missing); 
Powiązane problemy