Ich suche nach einer ac#/.net-Excel-Parsing-Bibliothek, die mit Dateien umgehen kann, die von Endbenutzern hochgeladen wurden und möglicherweise Macken aufweisen
Wir verwenden derzeit ExcelDataReader , aber es hat einige gravierende Mängel beim Umgang mit Excel-Dateien aus der Wildnis.
Ich suche einen Excel-Parser, der Folgendes kann:
Schön zu haben:
Es wäre in Ordnung, wenn dies ein kostenpflichtiges Produkt wäre, aber in diesem Fall wäre es schwierig, wenn es keine Demo hätte
Sie können Excel selbst verwenden. Es hat ein sehr reichhaltiges Objektmodell eingebaut, das Sie über die COM-zu-.NET-Interop verwenden können.
Es gibt jedoch 2 Nachteile:
Unabhängig davon, für welche Bibliothek Sie sich entscheiden, sollten Sie hochgeladene Dateien aus Sicherheitsgründen trotzdem in die Warteschlange stellen, sodass der zweite Nachteil kein wirkliches Problem darstellt.
Und der Vorteil ist, dass Sie durch die Verwendung von Original-Excel 100 % Kompatibilität mit hochgeladenen Arbeitsmappen haben.
Die beste Bibliothek, die unser Unternehmen verwendet hat, ist closedxml
Sie deklarieren und initialisieren das Objekt mit dem Konstruktor. Sammeln Sie Ihre Daten, fügen Sie sie in Ihre Datentabelle ein und konvertieren Sie Ihre Datentabelle in Excel. Die Leistung ist ziemlich gut. Falls Sie beispielsweise Millionen Zeilen verwenden, würde ich es vorziehen, neue Blätter hinzuzufügen, falls Excel nicht für Overflow in RAM geht. Das Beste, es ist kostenlos, Open Source.
XLWorkbook wb = new XLWorkbook();
DataTable dt = GetDataTableOrWhatever();
wb.Worksheets.Add(dt,"WorksheetName");
John Y