Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
EXCEL wirklich schliessen
Tschebbe
myCSharp.de - Member



Dabei seit:
Beiträge: 34
Herkunft: BW - Kaiserstuhl

beantworten | zitieren | melden

Also ich schliess mich mal Rainbird an. Hab alles sauber zugemacht und Excel wird geschlossen.

gute und hilfreiche Diskussion hier.
private Nachricht | Beiträge des Benutzers
Gabe
myCSharp.de - Member



Dabei seit:
Beiträge: 22

beantworten | zitieren | melden

Kurze Ergänzung für die Suchmaschinen:

Das Schließen von offenen Word- und Visio-Dateien funktioniert genauso...

Super Thread. Ist der nicht schon was für die FAQs?

Gruß Gabe
private Nachricht | Beiträge des Benutzers
Sio_x0911
myCSharp.de - Member



Dabei seit:
Beiträge: 1

beantworten | zitieren | melden

Egal wie alt dieser Beitrag ist. Genau das freigeben der COM Objekte hat mir bei diesem Problem geholfen. Dabei gebe ich mittlerweile alle Objekte direkt wieder frei, egal ob in For Schleifen oder sonst wo. Wenn diese nicht mehr benötigt werden werden sie freigegeben.

Vielen Dank

Moderationshinweis von Abt (09.10.2018 - 17:08:09):

Keine Full Quotes
[Hinweis] Wie poste ich richtig?

private Nachricht | Beiträge des Benutzers
ChrisProg
myCSharp.de - Member

Avatar #avatar-3533.jpg


Dabei seit:
Beiträge: 158

beantworten | zitieren | melden

Hallo,

ich habe mich nun auch länger mit dem Thema beschäftigen müssen, aber leider komme ich an einem Punkt nicht weiter 8o


    try
    {
        // First Contact: Excel Prozess initialisieren
        oExcel = new Excel.Application();
        //oExcel.Visible = false;
        oExcel.ScreenUpdating = true;

        // Excel Datei anlegen: Workbook
        oExcelWorkbooks = oExcel.Workbooks;
        oExcelWorkbook = oExcelWorkbooks.Add(System.Reflection.Missing.Value);
        oExcelWorkSheet = oExcelWorkbook.ActiveSheet;
        oExcelWorkSheet.Name = x_dateiname.ToString().Trim();

        // Überschriften eingeben 
        oExcelWorkSheet.Cells[1, 1] = "test";

        // Excel Datei abspeichern 
        oExcelWorkbook.Close(true, auswertung_speichern_unter.FileName, System.Reflection.Missing.Value);

    }
    catch (Exception ex)
    {
        Fehlermeldung.ErrorMessage(ex, "( --> Datei geöffnet ???   <--  )");
        vorgang_fortsetzen = false;
    }
    finally
    {
        // Excel beenden
        if (oExcel != null)
        {
            oExcel.Quit();
            System.Runtime.InteropServices.Marshal.FinalReleaseComObject(oExcelWorkSheet);
            oExcelWorkSheet = null;
            System.Runtime.InteropServices.Marshal.FinalReleaseComObject(oExcelWorkbook);
            oExcelWorkbook = null;
            System.Runtime.InteropServices.Marshal.FinalReleaseComObject(oExcelWorkbooks);
            oExcelWorkbooks = null;
            System.Runtime.InteropServices.Marshal.FinalRelease(oExcel);
            oExcel = null;
        }
    }

kommentiere ich die Zeile "oExcelWorkSheet.Cells[1, 1] = "test";" aus, funktioniert alles so wie es soll, u. es wird Excel im TaskManager geschlossen

da es wohl für Cells kein Comobjekt gibt (zumindest habe ich keins gefunden...)
habe ich es dann mit Hilfe von Range versucht :


        Excel.Range x_celle = (Excel.Range)oExcelWorkSheet.Cells[1, 1];
        x_celle.Value2 = "test";
        System.Runtime.InteropServices.Marshal.FinalReleaseComObject(x_celle);


aber auch dann wird Excel nicht mehr im TaskManager geschlossen


Wenn ich die entsprechenden Release-Befehle im Direktfenster eingebe, bekomme ich immer "0" zurück, was nach den obigen Ausführungen ja bedeutet, das alle Objekte geschlossen sind ...

Was sehe ich hier nicht / mache ich immer noch falsch ?

Bin für jede Hilfe dankbar ...

MfG ChrisProrg
Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von ChrisProg am .
private Nachricht | Beiträge des Benutzers