Excel-Export mit Spreadsheet Light

Lies in den Artikel rein und unten bekommst Du ein unschlagbares Angebot!

Das Thema Reporting haben wir im DATENBANKENTWICKLER noch gar nicht behandelt. Das liegt auch daran, dass es unter C#/WPF keine so einfach einsetzbare Reporting-Funktion wie etwa die Berichte und Access gibt. Also wollen wir uns einmal verschiedene Möglichkeiten ansehen, um die Daten einer Datenbank aus einer C#-Anwendung zu exportieren, um diese etwa in einer anderen Anwendung zu öffnen und auszudrucken. Den Start machen wir mit Microsoft Excel.

Voraussetzungen

In diesem Artikel wollen wir uns nicht, wie etwas unter Access/VBA möglich, per Automation an Excel heranwagen und die Excel-Dokumente per Excel erstellen. Stattdessen nutzen wir eine Bibliothek namens Spreadsheet Light, welche kostenlos verfügbar ist und Excel-Dateien erstellen kann, ohne dass Excel überhaupt auf dem Rechner existiert. Das ist natürlich gerade für Webanwendungen interessant, da so keine Office-Installation benötigt wird, aber auch für Desktop-Anwendungen.

Spreadsheet light installieren

Spreadsheet light ist eine Open Source-Anwendung, die Sie kostenlos in Ihren Projekten dürfen. In den Beispielen verwenden wir ein C#/WPF-Projekt, dem Sie noch das entsprechende Paket plus Verweis hinzufügen müssen. Sie finden den Eintrag SpreadsheetLight im Nuget-Paket-Manager, den Sie über den Kontextmenü-Eintrag Nuget-Pakete verwalten des Projekts im Projektmappen-Explorer starten (siehe Bild 1).

Hinzufügen von SpreadsheetLight über den Nuget-Paket-Manager

Bild 1: Hinzufügen von SpreadsheetLight über den Nuget-Paket-Manager

Erste leere Excel-Datei erzeugen

Damit haben wir alle Voraussetzungen geschaffen. Ein erstes Beispiel wollen wir durch einen Mausklick auf eine neue Schaltfläche namens btnDateiErstellen ausführen. Diese fügen wir dem Fenster MainWindow.xaml hinzu und tragen für die Ereignisprozedur btnDateiErstellen_Click die folgenden beiden Befehle ein:

private void btnDateiErstellen_Click(object sender, RoutedEventArgs e) {
     SLDocument xls = new SLDocument();
     xls.SaveAs("LeereDatei.xlsx");
}

Der hier verwendete Typ SLDocument dürfte nun noch als fehlerhaft markiert werden. Das ist kein Problem – nachdem Sie den Verweis auf den Namespace SpreadsheetLight hinzugefügt haben, verschwindet die Markierung:

using SpreadsheetLight;

Wenn Sie das Projekt nun starten und die Schaltfläche betätigen, erstellt die Anwendung im Hintergrund ein erstes, leeres Excel-Dokument (siehe Bild 2). Das neue Dokument wurde übrigens im Verzeichnis der erstellte .exe-Datei erstellt, also beim Testen von Visual Studio aus etwa im Verzeichnis bin\Debug des Projektverzeichnisses.

Die erste per SpreadsheetLight erstellt Excel-Datei

Bild 2: Die erste per SpreadsheetLight erstellt Excel-Datei

Wenn Sie Excel schon einmal von Access/VBA aus automatisiert haben, wissen Sie, dass Sie sonst einige Befehle mehr benötigen. Schauen wir uns nun an, wie wir die Excel-Datei füllen und formatieren können.

Daten zur Excel-Tabelle hinzufügen

 

Schreibe einen Kommentar