Laden...

Exportieren von Daten nach Excel

Erstellt von cprogrammer vor 11 Monaten Letzter Beitrag vor 11 Monaten 515 Views
C
cprogrammer Themenstarter:in
73 Beiträge seit 2023
vor 11 Monaten
Exportieren von Daten nach Excel

Verwendetes Datenbanksystem: Excel

Hallo,

ich möchte aus einer c# dll nach Excel Daten exportieren.

Sobald ein bestimmtes Ereignis auftritt soll eine neue Zeile entstehen und die verschiedenen spalten (insgesamt 30-40) enthalten jeweils unterschiedliche Daten zu diesem Ereignis.

Da die Daten zusammen mit dem Ereignis im Prinzip endlos in Echtzeit reinkommen, wäre schon mal die grundsätzliche Frage, ob man hier kontinuierlich in eine Datei schreiben sollte oder ob man die Daten zunächst im RAM zwischenspeichern und dann nach einetr Zeit X komplett in eine Datei speichern sollte. Dann wäre es hilfreich zu wissen, ob in den ganzen .Net Bibliotheken schon etwas existiert, was dieses Vorhaben unterstützt (also Excel Unterstützung).

Allgemein wäre noch die Frage offen, wie man sich am Besten über die gesamte Funktionalität der vorhandenen dlls/Bibliotheken einen Überblick verschaffen kann. Könnt Ihr da irgendweine Quelle oder ein Buche etc. empfehlen ?

2.080 Beiträge seit 2012
vor 11 Monaten

Mach das mit CSV, das würde die mit Abstand performanteste Lösung sein.
Du musst für neue Daten nur das Ende der Datei suchen und die neue Zeile anhängen, wenn Du den FileStream offen lässt, müsste das die schnellste Lösung sein.
Ich weiß nicht, wie bestehende Frameworks mit Echtzeit-Schreiben umgehen, aber Du kannst es auch selber implementieren, CSV ist ja nicht sehr komplex.
Wenn Du ein Framework suchst, kann ich dir CsvHelper ans Herz legen, damit habe ich gute Erfahrungen gemacht.

Wenn Du unbedingft Excel brauchst, wird das schwieriger.
Es ist meines Wissens nach nicht möglich, Excel-Dateien kontinuierlich zu erweitern, ohne immer die ganze Datei zu lasen und zu speichern.
Ich würde daher die Daten im RAM halten und regelmäßig in einem eigenen Thread in eine Excel-Datei schreiben.
Wenn Du ein Framework suchst, kann ich dir ClosedXml ans Herz legen, das ist sehr intuitiv und einfach, kann aber immer nur eine Datei als Ganzes verarbeiten.
Alternativ kannst Du dir auch die offizielle DocumentFormat.OpenXml von Microsoft anschauen, allerdings ist das mMn. ziemlich unübersichtlich.

Oder vielleicht wäre es besser, auf eine Datenbank zurückzugreifen?

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.