Microsoft Excel 15.0 Object Library macht probleme mit office365

  • VB.NET
  • .NET (FX) 4.0

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von ThomasG82.

    Microsoft Excel 15.0 Object Library macht probleme mit office365

    Hallo Leute,

    ich habe eine kleine Anwendung programmiert mit der ich eine Excel Datei erstelle.
    Dabei benutze ich das nuget Microsoft.Office.Interop.Excel (Microsoft Excel 15.0 Object Library).
    Alles funktioniert bei mir einwandfrei. Bei mir läuft Office2013

    Benutze ich aber mein kleines tool an einem anderen rechner (installiert ist hier Office365) bekomme ich folgende Fehlermeldung:

    Message=Unable to cast COM object of type 'Microsoft.Office.Interop.Excel.ApplicationClass' to interface type 'Microsoft.Office.Interop.Excel._Application'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{000208D5-0000-0000-C000-000000000046}' failed due to the following error: Error loading type library/DLL. (Exception from HRESULT: 0x80029C4A (TYPE_E_CANTLOADLIBRARY))

    Offensichtlich kann der Rechner die bibliothek nicht laden.

    hat jemand eine idee wie man diese daten zum laufen bringt ohne dass man nun ein Nuget für office bzw excel365 installiert?

    Wenn nein, gibt es ein nuget wo alle oder zumindest die Versionen 2013, 2016, 2019 und 365 laufen.
    Nicht die Antwort, die du suchst, aber wenn du für solche Dinge epplus einbindest, bist du nicht von Office abhängig.
    Falls du ein kommerzielles Projekt daraus machen willst, verwende die Version 4.5, da neuere Versionen Lizenzeinschränkungen besitzen.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --

    hugoboss28 schrieb:


    Offensichtlich kann der Rechner die bibliothek nicht laden.

    hat jemand eine idee wie man diese daten zum laufen bringt ohne dass man nun ein Nuget für office bzw excel365 installiert?

    Wenn nein, gibt es ein nuget wo alle oder zumindest die Versionen 2013, 2016, 2019 und 365 laufen.


    Es gibt nur ein NuGet-Paket für Excel.Interop und das läuft mit allen mir bkannten Excel-Versionen, solange du beim dot.Net-Framework bleibst und nicht zu Core bzw. NEt5 oder 6 wechselst.
    Das ist ja grade der "Witz" am NuGet-Paket. So wie du das hast läuft es auch nur mit deiner Excel-Version, und nicht mit anderen versionen.

    Tatsächlich benötigt man gar kein Excel, wenn man mit EPPlus arbeitet, ich kann dir das auch nur ans Herz legen. Läßt sich über das NuGet-Packetsystem sehr gut installieren, dabei kannst du auch die Version wählen. Wie @petaod schreibt, nimm die Version 4.5.3.3, da sist die letze LGPL-Version: epplussoftware.com/en/Home/LgplToPolyform
    Hallo Leute,

    erst mal danke an alle für eure Antworten.
    War einpaar Tage offline (beruflich unterwegs). Deswegen erst jetzt meine Antwort.

    So, wie ich im ersten Post geschrieben habe benutze ich das Nuget Microsoft.Office.Interop.Excel (Microsoft Excel 15.0 Object Library) in zusammenhang mit Excel 2013. Alles funzt soweit bei mir.
    Mittlerweile habe ich mein Tool auf vier Rechnern ausprobiert.

    Rechner 1 - Excel 2013 alles ok
    Rechner 2 - Excel 2016 alles ok
    Rechner 3 - Excel 365 alles ok
    Rechner 4 - Excel 365 Fehler (siehe Post1)

    Ich schätze mal das NETframwork ist beim vierten rechner neuer.
    der dritte Rechner hat das NETframwork 4 und da läuft alles.

    Excel ist Voraussetzung.

    Trotz dem, ich werde mir mal das EPPlus auf jeden fall mal anschauen.

    Nochmals vielen Dank an euch.
    Mein Fehler, habe dein OP nicht genau genug gelesen.
    Excel ist Voraussetzung.

    Was genau meinst du damit? Voraussetzung wofür? Um Interop zu nutzen: Ja. Um EPPlus zu nutzen: Nein. Für den Anweder: bestimmt ;)
    Wenn du die Aufgaben deones Programms (nicht die der Anwender) mit EPPlus abfackeln kannst, dann ist Excel eben keine Voraussetzung.
    Das erspart Dir das Handling mit Interop und stabil ist es auch. Brauchst du Funktionen wie die Druckausgabe aus Excel als PDF oder das Einbinden von Objekten in das Excel-Workbook, dann kommst du an Interop nicht vorbei (jedenfalls nach meinem Kenntnisstand).
    In dem Fall könnte dir der Wrapper tatsächlich helfen, weil der das installierte Excel.Interop verwendet.
    Ich habe jetzt mal nach der ID '{000208D5-0000-0000-C000-000000000046}' gegoogelt. Das Problem ist nichts neues und soweit ich es verstanden habe geht es bei dem Fehler um 32Bit und 64Bit Version von Office 365. Kann es sein, dass einer der Rechner mit ner 32Bit Version läuft und dir einen Fehler rausschmeißt? Oder aber verdreht eine 64Bit Version den Fehler ausgibt?

    Ich haste eine Seite gefunden (IBM) wo genau dieser Fehler behandelt wird und es sich um Registry Einträge und dabei um Einträge im 32 & 64 Bit System handelte.
    Somit die Frage - sind denn alles 32Bit oder 64Bit Versionen oder gibt es da Dreher drin?
    @ ThomasG82

    zuerst mal danke für deine Info.

    Nun, das habe ich mir auch gedach 32 oder vieleicht doch 64bit. Die Antwort von demjenigen mit dem Rechner wo mein tool nicht funktioniert war "definitiv 64 bit da kann die Party steigen". Er meinte wohl das Bier :thumbsup: :D

    Spaß bei seite, das habe ich überprüft. Beide Excel 365 sind 32bit Versionen. (für ne Party würden die bei mir auch langen 8-) )
    Ich habe jetzt noch mal nach ID und HexWert gesucht. Letztendlich soll der Fehler aufgrund fehlerhafter Registry Einträge durch Microsoft Office entstehen.
    Hier meistens wenn mal eine Version installiert war und durch eine neue Version ersetzt wurde. Dann bleiben wohl Reste zurück, die zu Verwirrung im System führen.
    Ich kann dir nur diese Seite (stackoverflow.com/questions/41…erop-excel-applicationcla) empfehlen, dort sind verschiedene Wege aufgelistet, wie du den Fehler erkennen und beheben kannst.
    Ganz am Ende wird auch ein Tool verlinkt welches die Fehler automatisch bereinigt.
    Hoffe es hilft

    PS: um so tiefer ich grabe um so mehr mehren sich die Indizien, dass es ein 32/64 Bit Problem ist. Hier noch ein link, geht zwar um C aber das Problem ist das selbe, die Lösung auch (social.msdn.microsoft.com/Foru…scomexception-occurred-in)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „ThomasG82“ ()