2009-05-12 7 views

Répondre

20

Pour imprimer, vous pouvez utiliser la méthode Worksheet.PrintOut(). Vous pouvez omettre tout ou partie des arguments facultatifs en transmettant Type.Missing. Si vous les omettez tous, l'impression par défaut d'une copie de votre imprimante active sera effectuée par défaut. Mais vous pouvez utiliser les arguments pour définir le nombre de copies à imprimer, le classement, etc. Voir l'aide sur la méthode Worksheet.PrintOut() pour plus d'informations.

L'exemple qu'ils montrent dans le fichier d'aide est:

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

Mais à moins que vous devez modifier les paramètres par défaut, vous pouvez simplement passer Type.Missing pour tous les arguments. Voici un exemple en utilisant l'automatisation pour ouvrir un classeur Excel, imprimez la première page, puis fermer:

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

Hope this helps!

Mike

+0

Merci beaucoup !!! C'était très utile! – yeahumok

+0

Cool, content d'avoir pu aider. :-) –

+0

vous ne seriez pas de savoir comment afficher un dialogue d'impression au lieu de l'impression tout de suite le document ... serait vous? – yeahumok

1

amélioration importante est le code pour sélectionner l'imprimante, par exemple:

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