Hallo zusammen,
hat jemand Erfahrung, was die schnellste Möglichkeit ist Excel Dateien in C# einzulesen und dann in einem gut zu bearbeiteten Objekt (z.B. DataTable) verfügbar zu haben?
Eine 24 MB Excel Datei benötigt bei mir vom Umwandeln des Streams in eine DataTable ca 30-40 Sekunden.
D.h. die Datei liegt schon vollständig als Stream vor und benötigt weitere 30-40 Sekunden bis Sie zu bearbeiten ist.
Ich brauche nur die Werte da raus (Formeln sind nicht relevant) und möchte wenn möglich kein echtes Excel im Hintergrund öffnen.
Danke für jeden Tip.
VIele Grüße,
Sythus
Schau dir mal das Open XML SDK an. Ich habe mit http://epplus.codeplex.com/ gute Erfahrungen gemacht.
EPPlus habe ich auch versucht, aber bei manchen Dateien einen Interop Fehler bekommen. Das war für mich nicht debugbar und deshalb habe ich auf die Library verzichtet.
Open XML SDK schaue ich mir mal an, vielen Dank
Weiß denn jemand worauf es an kommt das eine Datei schnell eingelesen werden kann, oder welche Library die schnellste für das reine lesen ist?
30-40 Sekunden für eine Datei die schon im Speicher liegt finde ich etwas zu langsam.
Schau dir mal NPOI an. Ist auf den ersten Blick recht komisch, aber läuft gnaz gut. Es gibt auch den hier
Excel Data Reader - Read Excel files in .NET
Gruss
Coffeebean
Microsoft MVP // Me // Blog // GitHub // @Egghead // All my talks // Speakerdeck
Hallo,
bei mir dauert eine 15 GB-Excel-Datei mit einer Tabelle ca. 24 Sekunden, bis die DataTable vollständig geladen wurde, würde bei einer 24GB-Datei also ebenfalls in den von dir genannten Bereich fallen.
Ich mach's allerdings komplett ohne Excel oder Interop-dll's, sondern nur über die Standard-.NET-Typen.
EDIT: Sorry, hatte mich vertippt: Ich meinte in beiden Fällen MB, nicht GB! Sonst wär das eine geniale Performance gewesen 😁
Nobody is perfect. I'm sad, i'm not nobody 🙁
Das wäre eine Lesegeschwindigkeit von 640 MB/s - und da ist nicht mal die Verarbeitung und damit die Leistung der CPU mit eingerechnet.
Für so nen Wert brauchste aber auch nen System, dass diese Ressourcen zur Verfügung stellen kann...
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code