HOWTO · Csharp
Daten mit C# in eine Excel-Datei exportieren
Vergleichen Sie, wie Sie C#-Objektsammlungen, Arrays, DataTables und JSON-Datensätze für eine Excel-Arbeitsmappe aufbereiten.
Auf dieser Seite
Wählen Sie den Exportweg passend zu Ihren Daten: Übertragen Sie eine Objektsammlung in ein Arbeitsblatt, schreiben Sie ein zweidimensionales Array in Zellen, exportieren Sie eine DataTable samt Spaltennamen oder deserialisieren Sie JSON-Datensätze, bevor Sie deren Felder zuordnen. Die folgenden Abschnitte beschreiben jeweils den vorgesehenen Aufbau der Arbeitsmappe. Die Bibliotheksbeispiele sind nicht überprüfte Illustrationen: Ziel-Framework, Paketversionen und Ausführungsnachweise liegen nicht vor. Prüfen Sie daher vor der Anpassung in der aktuellen Herstellerdokumentation, welche Pakete kompatibel sind, welche API-Signaturen gelten und welche Lizenzbedingungen zutreffen.
Exportieren Sie Daten nach Excel mit C#
Bei Datensätzen wie Schülerdaten können Sie mit einer Sammlung beginnen, deren Objekte die Werte für die gewünschten Spalten bereitstellen. Ein Objekt der Klasse Student kann beispielsweise die Eigenschaften name und marks enthalten. In der Arbeitsmappe steht jede Zeile für einen Schüler; eine Kopfzeile bezeichnet die beiden Felder. Diese Datenform eignet sich, wenn Ihre Anwendung bereits mit typisierten Datensätzen arbeitet und die Eigenschaften der Objekte im Arbeitsblatt erscheinen sollen.
Die ursprüngliche Illustration nennt ExcelMapper und das NuGet-Paket ExcelMapper. Betrachten Sie das als zu prüfende Bibliotheksoption, nicht als bestätigte Installationsanleitung. Lesen Sie in der Herstellerdokumentation nach, wie Sie das Paket aktuell installieren, eine Sammlung zuordnen, ein Arbeitsblatt wie ShaniData auswählen und eine .xlsx-Datei speichern. Geben Sie für die Arbeitsmappe einen beschreibbaren Ausgabepfad an. Das beabsichtigte Ergebnis ist ein Arbeitsblatt mit Namen und Noten der Schüler; eine Ausgabedatei oder ein Screenshot wurde hier nicht überprüft.
Exportieren Sie Daten von Array nach Excel mit C#
Ein zweidimensionales Array eignet sich, wenn die Werte bereits eine rechteckige Tabelle bilden. Legen Sie die Feldnamen in die erste Zeile, zum Beispiel Name, City, Gpa und Language, und tragen Sie jeden Datensatz in eine weitere Zeile ein. Alle Zeilen sollten gleich viele Werte enthalten, damit jeder Eintrag unter der vorgesehenen Überschrift steht.
Die bereitgestellte Illustration verwendet Spire.Xls, erstellt ein Arbeitsblatt namens ShaniArray und ruft InsertArray mit den Zeilen- und Spaltenargumenten 2 und 1 auf. Damit ist als beabsichtigte Startposition die zweite Arbeitsblattzeile und die erste Spalte angegeben. Prüfen Sie die Indizierung der API in der aktuellen Dokumentation, bevor Sie sich darauf verlassen. Enthält das Array eine Kopfzeile, lässt der Beginn in Zeile zwei die erste Arbeitsblattzeile für einen zusätzlichen Titel oder Leerraum frei. In der ursprünglichen Paketüberschrift stand fälschlich ExcelMapper, obwohl die Verweise im Beispiel zu Spire.Xls gehörten. Orientieren Sie sich an der Dokumentation des tatsächlich gewählten Pakets. Vorgesehen ist ein Excel-Arbeitsblatt mit der Kopfzeile und den Datensätzen aus dem Array.
Exportieren Sie Daten aus DataTable nach Excel mit C#
Verwenden Sie eine DataTable, wenn Spaltennamen und Zeilen bereits im tabellarischen .NET-Datenmodell vorliegen. Definieren Sie Spalten wie Roll Number, Student Name und Section und fügen Sie anschließend für jeden Schüler eine DataRow hinzu. Im Arbeitsblatt sollen die Spaltennamen in der ersten Zeile und darunter die Tabellenwerte stehen. Achten Sie darauf, dass jede Zeile einen Wert für jede definierte Spalte enthält.
Die Illustration im Artikel verweist auf Spire.Xls und sieht vor, die Tabelle einschließlich ihrer Spaltennamen einzufügen. In der Paketbeschreibung wurde fälschlich ExcelMapper genannt. Schlagen Sie in der Dokumentation der gewählten Bibliothek nach, welches Paket und welche aktuelle API zum Einfügen einer Tabelle passen. Die Argumente des Einfügeaufrufs und des Speichervorgangs wurden hier nicht überprüft. Klären Sie daher für Ihre installierte Version deren Bedeutung, die Arbeitsblattkoordinaten und den Ausgabepfad. Dieser Ansatz ist hilfreich, wenn eine Abfrage oder die bestehende Anwendungslogik bereits eine DataTable liefert und die benannten Spalten in der Arbeitsmappe erhalten bleiben sollen.
Exportieren Sie Daten von JSON nach Excel mit C#
Die Beispieldaten liegen als JSON-Zeichenfolge direkt im Code vor, nicht als JSON-Datei. Sie enthält nummerierte Schülerdatensätze mit den Feldern Name, Roll, GPA und Fyp. Deserialisieren Sie die Zeichenfolge in eine Sammlung oder ein Dictionary von Schülerobjekten und ordnen Sie die Felder anschließend Arbeitsblattspalten wie Student Name, Roll No, GPA und FYP zu. Für eine JSON-Datei wäre vor der Deserialisierung ein eigener Schritt zum Einlesen der Datei erforderlich; dieser Schritt gehört nicht zu dieser Illustration.
Als Bibliotheken nennt die Quelle Newtonsoft.Json für die Deserialisierung und GemBox.Spreadsheet für die Erstellung der Arbeitsmappe. Trennen Sie die Aufgaben: Initialisieren Sie die Arbeitsmappe mit der ausgewählten Tabellenkalkulationsbibliothek, erstellen Sie das Arbeitsblatt ShaniJSON, schreiben Sie die Überschriften hinein, fügen Sie darunter die einzelnen Datensätze ein und speichern Sie die Datei. In der ursprünglichen Zuordnung ist der JSON-Schlüssel Name einer C#-Eigenschaft namens Fname zugeordnet. Stellen Sie sicher, dass die Serializer-Konfiguration zu den tatsächlich verwendeten Eigenschaftsnamen passt. Die Quelle wechselte zwischen Workbook und ExcelFile; prüfen Sie daher den Arbeitsmappentyp und die Speichermethode in der aktuellen GemBox-Dokumentation, statt möglicherweise unvereinbare Fragmente zu kombinieren. Prüfen Sie außerdem die Lizenzbedingungen und die Kompatibilität des JSON-Pakets mit Ihrem Projekt. Es wird weder behauptet, dass der Code kompiliert oder ausgeführt wurde, noch dass eine Arbeitsmappe erstellt wurde.