Hallo
ich habe ein ziemliches Problem mit dem Zugriff auf Excel
Szenario: Meine Aplikation soll mehrere male hintereinander Daten in jeweils ein neues Excel-Sheet einer Arbeitsmappe pumpen.
Dazu erstelle ich beim ersten Export einen neuen Excel-Prozesse mittels:
ExcelApp = new Excel.ApplicationClass();
mit dieser Excel-Applikation kann ich dann alles machen was ich will.
Da nun aber nutzerseitig die Möglichkeit besteht, daß Excel geschlossen wird, während mein Programm läuft, möchte ich beim nächsten Export auf eine laufende Excel-Applikation zugreifen. Welche das ist kann ich scheinbar nicht beeinflussen, aber unter umständen ist es ja sogar meine
kompletter code:
private void export_Click(object sender, System.EventArgs e)
this.Cursor = System.Windows.Forms.Cursors.WaitCursor;
try
{
ExcelApp = (Excel.ApplicationClass) System.Runtime.InteropServices.Marshal.GetActiveObject("Excel.Application");
}
catch
{
ExcelApp = new Excel.ApplicationClass();
}
//add new Workbook and new Worksheet and set Worksheet-Name
//... do something
System.Runtime.InteropServices.Marshal.ReleaseComObject(ExcelApp);
this.Cursor = System.Windows.Forms.Cursors.Default;
ExcelApp = null;
}
Probleme damit:
- System.Runtime.InteropServices.Marshal.GetActiveObject gibt Cast-Exceptions
- es wird jedesmal ein neues Exel-Dokument geöffnet
- im Taskmanager erscheinen gleich mal 3 Prozesse
- nach beenden von Excel oder meinem Programm bleiben die Leichen im Taskmanager
erhalten.
Vielleicht hat sich schonmal jemand damit beschäftigt und kann mir den "zündenden Tip" geben.
Grüße
JayeL
ich habe ein ziemliches Problem mit dem Zugriff auf Excel

Szenario: Meine Aplikation soll mehrere male hintereinander Daten in jeweils ein neues Excel-Sheet einer Arbeitsmappe pumpen.
Dazu erstelle ich beim ersten Export einen neuen Excel-Prozesse mittels:
ExcelApp = new Excel.ApplicationClass();
mit dieser Excel-Applikation kann ich dann alles machen was ich will.
Da nun aber nutzerseitig die Möglichkeit besteht, daß Excel geschlossen wird, während mein Programm läuft, möchte ich beim nächsten Export auf eine laufende Excel-Applikation zugreifen. Welche das ist kann ich scheinbar nicht beeinflussen, aber unter umständen ist es ja sogar meine

kompletter code:
private void export_Click(object sender, System.EventArgs e)
this.Cursor = System.Windows.Forms.Cursors.WaitCursor;
try
{
ExcelApp = (Excel.ApplicationClass) System.Runtime.InteropServices.Marshal.GetActiveObject("Excel.Application");
}
catch
{
ExcelApp = new Excel.ApplicationClass();
}
//add new Workbook and new Worksheet and set Worksheet-Name
//... do something
System.Runtime.InteropServices.Marshal.ReleaseComObject(ExcelApp);
this.Cursor = System.Windows.Forms.Cursors.Default;
ExcelApp = null;
}
Probleme damit:
- System.Runtime.InteropServices.Marshal.GetActiveObject gibt Cast-Exceptions
- es wird jedesmal ein neues Exel-Dokument geöffnet
- im Taskmanager erscheinen gleich mal 3 Prozesse
- nach beenden von Excel oder meinem Programm bleiben die Leichen im Taskmanager
erhalten.
Vielleicht hat sich schonmal jemand damit beschäftigt und kann mir den "zündenden Tip" geben.
Grüße
JayeL