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
Applikation startet nicht aufgrund von Excel-Einbindung
shazam
myCSharp.de - Member



Dabei seit:
Beiträge: 5

Themenstarter:

Applikation startet nicht aufgrund von Excel-Einbindung

beantworten | zitieren | melden

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!
private Nachricht | Beiträge des Benutzers
lhyn
myCSharp.de - Member



Dabei seit:
Beiträge: 136

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
shazam
myCSharp.de - Member



Dabei seit:
Beiträge: 5

Themenstarter:

beantworten | zitieren | melden

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!
private Nachricht | Beiträge des Benutzers
Palladin007
myCSharp.de - Experte

Avatar #avatar-4140.png


Dabei seit:
Beiträge: 1.909
Herkunft: Düsseldorf

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers
MrSparkle
myCSharp.de - Team

Avatar #avatar-2159.gif


Dabei seit:
Beiträge: 5.655
Herkunft: Leipzig

beantworten | zitieren | melden

Es sollte eine Exception geworfen werden. Da steht dann, was genau das Problem ist.
Weeks of programming can save you hours of planning
private Nachricht | Beiträge des Benutzers
shazam
myCSharp.de - Member



Dabei seit:
Beiträge: 5

Themenstarter:

beantworten | zitieren | melden

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


Vielen Dank!
private Nachricht | Beiträge des Benutzers
Stefan.Haegele
myCSharp.de - Member

Avatar #avatar-3068.jpg


Dabei seit:
Beiträge: 463
Herkunft: Untermeitingen

beantworten | zitieren | melden

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

}
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Stefan.Haegele am .
private Nachricht | Beiträge des Benutzers
shazam
myCSharp.de - Member



Dabei seit:
Beiträge: 5

Themenstarter:

beantworten | zitieren | melden

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!
private Nachricht | Beiträge des Benutzers
HansFred
myCSharp.de - Member



Dabei seit:
Beiträge: 48

beantworten | zitieren | melden

Google-Suche nach 80040154 not registered
private Nachricht | Beiträge des Benutzers
shazam
myCSharp.de - Member



Dabei seit:
Beiträge: 5

Themenstarter:

beantworten | zitieren | melden

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

Danke euch allen!
private Nachricht | Beiträge des Benutzers