Laden...

Applikation startet nicht aufgrund von Excel-Einbindung

Erstellt von shazam vor 3 Jahren Letzter Beitrag vor 3 Jahren 1.977 Views
S
shazam Themenstarter:in
5 Beiträge seit 2020
vor 3 Jahren
Applikation startet nicht aufgrund von Excel-Einbindung

Hallo zusammen,

hoffe alle sind bei bester Gesundheit. 😃
In meiner Firma habe ich schon so manche kleine "Hilfsapplikation" erstellt.

Bei einer solcher Applikation wird ein Excel-File erstellt und Daten hinein geschrieben, ganz simpel.
Dies funktionierte auf jedem Computer, auf welchem diese Applikation als .exe-File läuft, einwandfrei.

Jedoch gibt es einen PC, auf dem die Applikation seit ein paar Tag nicht mehr starten will.

Festgemacht habe ich dies jetzt an der folgenden Zeile Code, wenn ich diese aus-kommentiere (inkl. deren Verwendung), funktioniert es einwandfrei:


Excel.Application app = new Excel.Application();

Alle PC's sind laut Werksstandard gleich installiert, ich kann es mir nicht erklären... wenn ich Doppelklicke (egal ob die .exe auf dem Desktop liegt oder auf dem Netzlaufwerk verlinkt wird). Es zeigt kurz ein Ladesymbol, passieren tut aber nichts...

Bin auf eure Meinung gespannt. 😃

Schöne Grüße!

L
136 Beiträge seit 2015
vor 3 Jahren

Hallo shazam,

Du arbeitest anscheinend mit Microsoft.Office.Interop.Excel was ein installiertes Excel benötigt.
Ist dieses auch wirklich installiert und lässt sich auf dem "Problem-PC" starten?

Als alternative kann ich Dir OpenXml empfehlen, damit kannst du viel performanter und ohne installiertes Excel eine xlsx Datei erzeugen.


    using DocumentFormat.OpenXml;
    using DocumentFormat.OpenXml.Packaging;
    using DocumentFormat.OpenXml.Spreadsheet;

Gruss Lhyn

S
shazam Themenstarter:in
5 Beiträge seit 2020
vor 3 Jahren

Hallo Lyhn,

danke für deine Antwort.
Ja, Excel ist auf dem "Problem-PC" installiert und lässt sich auch ohne Fehler ausführen.
Ich kopiere damit ein Template und passe dann die Daten entsprechend an.
Eine Umstellung auf OpenXml hört sich doch nach einigem Aufwand an...

Geht es irgendwie zu testen, warum es nicht startet?

Vielen Dank!

2.078 Beiträge seit 2012
vor 3 Jahren

Ist die selbe Excel-Version mit der selben Architektur (x86 vs. x64) installiert?
Unterschiede können zu Problemen führen - zumindest, wenn man die Interop-API nutzt.

Ansonsten kann ich das Framework ClosedXML empfehlen.
Es baut auf OpenXML auf, ist aber mMn. um Welten intuitiver aufgebaut, gerade wenn es um komplexere Anforderungen geht.

5.657 Beiträge seit 2006
vor 3 Jahren

Es sollte eine Exception geworfen werden. Da steht dann, was genau das Problem ist.

Weeks of programming can save you hours of planning

S
shazam Themenstarter:in
5 Beiträge seit 2020
vor 3 Jahren

Es wird eben keine Exception geworfen - wie muss ich diese aufbauen, dass mir ein Fehler angezeigt wird?

Vielen Dank!

463 Beiträge seit 2009
vor 3 Jahren

Im einfachsten Fall so - normalerweise sollte der Fehler aber in einer Logdatei gespeichert werden. Dies ist wirklich nur als Minimalbeispiel zu verstehen.


try
{
    
    Excel.Application app = new Excel.Application();

}
catch(Exception exp)
{

    MessageBox.Show(exp.message, "Exception Excel Aufruf", MessageBoxButtons.OK);

}

S
shazam Themenstarter:in
5 Beiträge seit 2020
vor 3 Jahren

Die Fehlermeldung konnte ich jetzt herausfinden:

Die COM-Klassenfactory für die Komponente mit CLSID {00024500-0000-0000-C000-000000000046} konnte aufgrund des folgenden Fehlers nicht abgerufen werden: 80040154 Klasse nicht registriert (Ausnahme von HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).

Was könnt die Ursache sein?

Vielen Dank!

H
48 Beiträge seit 2020
vor 3 Jahren
S
shazam Themenstarter:in
5 Beiträge seit 2020
vor 3 Jahren

So, ein Microsoft-Update hat das Problem gerade gelöst...
Was lernt man: einfach abwarten...

Danke euch allen!