Laden...

C# Excel einlesen ohne InterOp

Letzter Beitrag vor einem Jahr 5 Posts 860 Views
C# Excel einlesen ohne InterOp

Hallo ich schreibe ein C# Skript für Eplan (E-Cad Programm).

Da kann ich nur eine XXX.cs laden und Starten.

Aus diesem Skript möchte eine Excel-Datei einlesen.

InterOp funktioniert nicht, weil der Verweis nicht geht. Weil keinen Verweis erstellen kann, wie im MS-Studio.

Was gibt es für Möglichkeiten?

Danke euch.

Zum Lesen von Excel such mal nach "ClosedXML". InterOp brauchst Du mit dem OpenXML-Format nicht, aber ohne NuGet-Packages geht's nicht.

Wie wäre es, wenn Du eine DLL programmierst, als Datei irgendwo hin legst, in dem Script die Datei lädst und mit Reflection irgendeine Methode ausführst?

NuGet Packages im Code auslesen
lock Alternative für async/await

Beim CleanCode zählen nicht die Regeln, sondern dass wir uns mit diesen Regeln befassen, selbst wenn wir sie nicht befolgen - hoffentlich nach reiflichen Überlegungen.

Sofern wir von xlsx sprechen, so ist das nichts anderes als eine Zip-Datei, die XML-Dateien beinhaltet.
Kannst auch alles selbst implementieren.

Hallo, kurze Info von mir, habe das gerade gesehen weil ich auf der Suche nach etwas war.

Mit Excel habe ich mich schon öfters herumgeägert, weil plötzlich mti dem Standard nichts mehr geht sobald es um 32 oder 64 bit geht, bei den PC's aber irgend ein Mischmasch installiert ist.

Ich habe dann das NPOI gefunden, dass kann auch noch das XLS-Format verarbeiten.

Google mal nach NPOI.

NPOI ist aber auch eine externe Assembly, so daß man dafür einen Verweis bräuchte (*).

Man müßte also, wie Palladin007 schon schrieb, selber eine DLL erzeugen und diese dann dynamisch laden (dies müßte man aber zuerst mal mit dem E-Cad Programm Eplan ausprobieren - je nachdem welche C#- und .NET-Version verwendet wird).

* Es gäbe zwar auch noch die Möglichkeit, alle NPOI-Sourcen zu einer Datei zusammenzufügen (aber dazu müßte man auch die Apache 2.0 Lizenz beachten) - und ob Eplan das dann direkt compiliert, hinge auch wieder von der verwendeten C#-Version ab.