Laden...

Schnellste Möglichkeit Excel zu lesen

Erstellt von Sythus vor 8 Jahren Letzter Beitrag vor 8 Jahren 3.490 Views
S
Sythus Themenstarter:in
166 Beiträge seit 2009
vor 8 Jahren
Schnellste Möglichkeit Excel zu lesen

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

T
314 Beiträge seit 2013
vor 8 Jahren

Schau dir mal das Open XML SDK an. Ich habe mit http://epplus.codeplex.com/ gute Erfahrungen gemacht.

S
Sythus Themenstarter:in
166 Beiträge seit 2009
vor 8 Jahren

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.

2.207 Beiträge seit 2011
vor 8 Jahren

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

1.820 Beiträge seit 2005
vor 8 Jahren

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 🙁

16.806 Beiträge seit 2008
vor 8 Jahren

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...