2009-05-13 22 views
3

Ich habe den folgenden Code: [Danke Mike Rosenblum!]Excel-Interop verwenden und einen Druckdialog erhalten

mit System; mit System.Collections.Generic; mit System.Linq; mit System.Text; mit Microsoft.Office.Interop.Excel; mithilfe von System.Runtime.InteropServices;

Namespace ConsoleApplication17 { class Program {

static void Main(string[] args) { 



    //public void PrintMyExcelFile() 
    //{ 
Microsoft.Office.Interop.Excel.Application excelApp = new Microsoft.Office.Interop.Excel.Application(); 

// Open the Workbook: 
Microsoft.Office.Interop.Excel.Workbook wb = excelApp.Workbooks.Open(
    @"C:\hello.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.) 
Microsoft.Office.Interop.Excel.Worksheet ws = (Microsoft.Office.Interop.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); 



} 
    } 




    } 

Was ich bin versucht zu erreichen, dass statt dessen Druck meine Excel-Datei sofort, würde ich einen Druckdialog mag so erscheinen, dass Ich kann einen bestimmten Drucker wählen, wenn ich möchte.
Ich verwende die 12.0.0.0 .NET Interop für Excel. Hat jemand Ideen?

Vielen Dank im Voraus

Antwort

8

Der Druckdialog von .NET zugänglich und wird gut auf Excel 2007 mit dem 12,0 PIAs laufen. Der Dialog.Show() Befehl hat jedoch 30 optionale Parameter. In der Zukunft wird es C# 4.0 ermöglichen, optionale Parameter wegzulassen (Gott sei Dank), und VB.NET erfordert sie nicht, aber wenn wir C# 3.0 oder niedriger verwenden, müssen wir Type.Missing für die optionalen Parameter bereitstellen. Alle 30 von ihnen:

Die Methode Show() gibt 'true' zurück, um anzuzeigen, dass die Operation erfolgreich war; Es gibt 'false' zurück, um anzuzeigen, dass der Benutzer die Abbrechen-Taste oder die Escape-Taste gedrückt hat, so dass keine Aktion stattgefunden hat.

Hoffe, dass Sie geht ...

+0

wieder, DANKE für ein Lebensretter! Ihre Hilfe ist sehr geschätzt – yeahumok

+0

Sicher, kein Problem! :-) –

+0

Ich hatte die obigen Codierungen durchgegangen. Ich habe auch ein Problem in einem ähnlichen Prozess, d. H. Druckvorschau-Option. Excel.Application excelApp = neu Excel.Application(); Excel.Workbook wb = ExcelApp.Workbooks.Open (@ "C: \\ Dokumente und Einstellungen \\ Admin \\ Desktop \\ DoCoMo \\ news5.xls", Type.Missing, Type.Missing, Type. Fehlende, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); Excel.Worksheet ws = (Excel.Worksheet) wb.Worksheets [1]; –

Verwandte Themen