In einer unserer ASP.NET-Anwendungen in C # nehmen wir eine bestimmte Datenerfassung (SubSonic-Sammlung) und exportieren sie nach Excel. Wir möchten auch Excel-Dateien in einem bestimmten Format importieren. Ich suche eine Bibliothek, die ich für diesen Zweck nutzen kann.
Bedarf:
- Excel 2007-Dateien (Unterstützt Excel 2003 mehr als 64.000 Zeilen? Ich benötige mehr.)
- Benötigt kein Excel auf dem Server
- Nimmt eine typisierte Sammlung und versucht, wenn möglich, numerische Felder in Excel als numerisch zu setzen.
- Funktioniert gut mit großen Dateien (100k bis 10M) - schnell genug.
- Stürzt beim Exportieren von GUIDs nicht ab!
- Kostet nicht viel Geld (keine Unternehmensbibliothek wie aspose). Kostenlos ist immer toll, kann aber eine kommerzielle Bibliothek sein.
Welche Bibliothek empfehlen Sie? Haben Sie es für große Datenmengen verwendet? Gibt es andere Lösungen?
Im Moment verwende ich ein einfaches Tool, das HTML generiert, das später von Excel geladen wird, aber ich verliere einige Funktionen, und Excel beschwert sich, wenn wir es laden. Ich muss keine Diagramme oder ähnliches generieren, sondern nur Rohdaten exportieren.
Ich denke an flache CSV-Dateien, aber Excel ist eine Kundenanforderung. Ich kann direkt mit CSV arbeiten, wenn ich ein Tool zum Konvertieren in und aus Excel hätte. Angesichts der Tatsache, dass Excel 2007 ein XML-basiertes (und komprimiertes) Dateiformat ist, sollte diese Art von Bibliothek leicht zu finden sein. Am wichtigsten für mich sind jedoch Ihre Kommentare und Meinungen.
EDIT: Ironischerweise ist meiner Meinung nach und nach der Antwort mit den meisten Stimmen die beste Excel-Import- und Exportbibliothek überhaupt kein Export. Dies ist nicht für alle Szenarien der Fall, aber für meine. XLS-Dateien unterstützen nur 64.000 Zeilen. XLSX unterstützt bis zu 1M. Die kostenlosen Bibliotheken, die ich ausprobiert habe, weisen eine schlechte Leistung auf (eine Sekunde zum Laden einer Zeile, wenn Sie 200.000 Zeilen haben). Ich habe die bezahlten nicht ausprobiert, da ich der Meinung bin, dass sie für den Wert, den sie liefern, überteuert sind, wenn Sie nur eine schnelle XLSX <-> CSV-Konvertierungsroutine benötigen.
quelle
Antworten:
Ich werde meine Hand für flache CSV-Dateien werfen, schon allein, weil Sie die größte Kontrolle über den Code haben. Stellen Sie einfach sicher, dass Sie die Zeilen einlesen und einzeln verarbeiten (wenn Sie das Dokument bis zum Ende lesen und aufteilen, wird Ihr gesamtes Gedächtnis aufgebraucht - genau wie beim Schreiben, streamen Sie es aus).
Ja, der Benutzer muss als Excel in Excel speichern, bevor Sie es verarbeiten können. Vielleicht kann diese Einschränkung jedoch durch Schulung und Bereitstellung klarer Anweisungen auf der Seite überwunden werden.
Wenn Sie beim Exportieren an den Kunden den MIME-Typ auf Text / CSV setzen, wird Excel normalerweise diesem Typ zugeordnet, sodass es dem Benutzer als "Excel-Datei" erscheint.
quelle
Ich habe das Open XML SDK seit meiner ursprünglichen Antwort entdeckt. Es bietet unter anderem stark typisierte Klassen für Tabellenkalkulationsobjekte und scheint recht einfach zu bearbeiten zu sein. Ich werde es für Berichte in einem meiner Projekte verwenden. Leider soll Version 2.0 erst Ende 2009 oder 2010 veröffentlicht werden.
quelle
Die neue Version von ExcelPackage finden Sie hier http://EPPlus.codeplex.com
Ich kämpfe immer noch mit der Funktion "In Excel exportieren", da meine Anwendung einige Daten in die Excel-Vorlage 2007 exportieren sollte
Dieses Projekt scheint mir in Ordnung zu sein, und der Entwickler reagiert sehr schnell auf Fehler und Probleme.
quelle
Ich habe ClosedXML verwendet und es funktioniert großartig!
quelle
SpreadsheetGear für .NET liest und schreibt CSV / XLS / XLSX und bietet mehr.
Sie können Live - ASP.NET Proben mit C # und VB - Quellcode sehen hier und eine kostenlose Testversion herunterladen hier .
Natürlich denke ich, dass SpreadsheetGear die beste Bibliothek zum Importieren / Exportieren von Excel-Arbeitsmappen in ASP.NET ist - aber ich bin voreingenommen. Sie können sehen, was einige unserer Kunden auf der rechten Seite dieser Seite sagen .
Haftungsausschluss: Ich besitze SpreadsheetGear LLC
quelle
NPOI für Excel 2003 Open Source http://www.leniel.net/2009/07/creating-excel-spreadsheets-xls-xlsx-c.html
quelle
Ich habe Flexcel in der Vergangenheit verwendet und es war großartig. Dies diente jedoch eher der programmgesteuerten Erstellung und Aktualisierung von Excel-Arbeitsblättern.
quelle
Der CSV-Export ist einfach, leicht zu implementieren und schnell. Es gibt jedoch ein potenzielles Problem, das es zu beachten gilt. Excel (bis 2007) behält keine führenden Nullen in CSV-Dateien bei. Dadurch werden Postleitzahlen, Produkt-IDs und andere Textdaten mit numerischen Werten beschädigt. Es gibt einen Trick, mit dem Excel die Werte korrekt importiert (unter Verwendung von Trennzeichen und Präfixwerten mit dem Zeichen =, wenn ich mich richtig erinnere, z. B. = "02052", ...). Wenn Sie Benutzer haben, die Nachbearbeitungsaufgaben mit der CSV ausführen, müssen sie sich bewusst sein, dass sie das Format in XLS ändern und die Datei nicht wieder in CSV speichern müssen. Wenn dies der Fall ist, gehen führende Nullen endgültig verloren.
quelle
Seit Jahren verwende ich JExcel für dieses hervorragende Open-Source-Java-Projekt. Es war auch .NET-fähig, indem J # zum Kompilieren verwendet wurde, und ich hatte auch großen Erfolg damit in dieser Inkarnation. Vor kurzem musste ich den Code jedoch auf natives .NET migrieren, um eine 64-Bit-IIS-Anwendung zu unterstützen, in der ich eine Excel-Ausgabe erstelle. Die 32-Bit-J # -Version würde nicht geladen.
Der Code für CSharpJExcel ist LGPL und verfügbar ist derzeit auf diesem Seite Wir bereiten die Bereitstellung auf der JExcel SourceForge-Site vor. Es wird mit VS2005 oder VS2008 kompiliert. Die Beispiele in der ursprünglichen JExcel-Dokumentation werden ziemlich gut intakt auf die .NET-Version übertragen.
Hoffe, es ist hilfreich für jemanden hier draußen.
quelle
Ich habe lange mit Excel Jetcell gearbeitet und kann es wirklich empfehlen. http://www.devtriogroup.com/exceljetcell
quelle
Die folgende Site zeigt, wie Sie eine DataTable, ein DataSet oder eine List <> in eine "richtige" Excel 2007-XLSX-Datei exportieren (anstatt eine CSV-Datei zu exportieren und Excel zum Öffnen zu bewegen).
Es nutzt die OpenXML - Bibliotheken, so dass Sie nicht tun Excel auf dem Server installiert haben müssen.
Mikes Knowledge Base - ExportToExcel
Der gesamte Quellcode sowie eine Demo-Anwendung werden kostenlos zur Verfügung gestellt.
Es ist sehr einfach, Ihre eigenen Anwendungen zu erweitern. Sie müssen nur eine Funktion aufrufen, einen Excel-Dateinamen und Ihre Datenquelle übergeben:
Hoffe das hilft.
quelle
Überprüfen Sie das ExcelPackage- Projekt. Es verwendet das Office Open XML-Dateiformat von Excel 2007, ist leicht und Open Source ...
quelle
Ich habe CSharpJExcel ausprobiert und würde es nicht empfehlen, zumindest nicht, bis eine Dokumentation verfügbar ist. Im Gegensatz zu den Kommentaren der Entwickler handelt es sich nicht um einen reinen nativen Port.
quelle
Ich weiß, dass dies ziemlich spät ist, aber ich fühle mich gezwungen, xPorter (Schreiben) und xlReader (Lesen) von xPortTools.Net zu beantworten . Wir haben einige Bibliotheken getestet und nichts hat die Leistung beeinträchtigt (ich spreche hier davon, Millionen von Zeilen in Sekunden zu schreiben). Ich kann nicht genug gute Dinge über diese Produkte sagen!
quelle
Sie können verwenden
Microsoft.Jet.OLEDB.4.0
quelle
Wir haben gerade einen ähnlichen Bedarf festgestellt. Und ich denke, es ist wichtig, die Benutzererfahrung zu berücksichtigen.
Wir wurden fast abgelenkt:
... Arbeitsablauf
Mit Add-In Express können Sie eine Schaltfläche in Excel erstellen, ohne sich mit VSTO herumschlagen zu müssen. Dann wird der Workflow:
Lassen Sie den Code hinter der Schaltfläche die "native" Excel-API (über Add-In Express) verwenden und direkt in das Empfängersystem übertragen. Sie können für den Entwickler oder den Benutzer nicht viel transparenter werden. Bedenkenswert.
quelle
Es gibt einen ziemlich guten Artikel und eine Bibliothek auf CodeProject von Yogesh Jagota:
Excel XML Import-Export-Bibliothek
Ich habe es verwendet, um Daten aus SQL-Abfragen und anderen Datenquellen nach Excel zu exportieren - funktioniert für mich einwandfrei.
Prost
quelle
Sie können die folgende Bibliothek ausprobieren, sie ist einfach genug und nur ein einfacher Wrapper über das Open XML SDK von Microsoft (Sie können sogar Formatierungen, Stile und sogar ganze Arbeitsblätter aus sekundären Excel-Dateien wiederverwenden): http://officehelper.codeplex.com
quelle
Spreadsheetgear ist die beste kommerzielle Bibliothek, die wir gefunden haben und verwenden. Unser Unternehmen führt viele fortschrittliche Excel-Importe und -Exporte durch, und Spreadsheetgear unterstützt viele erweiterte Excel-Funktionen, die weit über alles hinausgehen, was Sie mit einfachem CSV tun können, und das schnell. Es ist zwar nicht kostenlos oder sehr billig, aber es lohnt sich, weil der Support ausgezeichnet ist. Die Entwickler werden Ihnen tatsächlich antworten, wenn Sie auf ein Problem stoßen.
quelle
Wie wäre es mit der Apache POI Java-Bibliothek. Ich habe es nicht für Excel verwendet, aber für Word 2007.
quelle