EDM-Daten in CSV exportieren

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

Im Artikel “CSV-Datei in Klassen importieren” haben wir bereits gezeigt, wie Sie die Daten aus CSV-Dateien in .NET-Anwendungen importieren und diese auf die enthaltenen Klassen aufteilen können. Dazu haben wir das NuGet-Paket CsvHelper verwendet. Im vorliegenden Artikel schauen wir uns den umgekehrten Weg an: Wie können wir die Daten aus den Objekten eines Entity Data Models in eine CSV-Datei exportieren Dazu setzen wir direkt an der Beispieldatenbank für den oben genannten Artikel an und speichern die darauf importierten Daten direkt wieder in eine neue CSV-Datei.

CsvHelper hinzufügen

Das erwähnte NuGet-Paket CsvHelper fügen wir über den Nuget-Paket-Manager hinzu, den Sie über den Menüeintrag Projekt|NuGet-Pakete verwalten… öffnen. Hier wechseln Sie zum Bereich Durchsuchen und geben csvhelper in das Suchfeld ein. Es erscheint der Eintrag CsvHelper, den wir auswählen und mit einem Klick auf die Schaltfläche Installieren zum Projekt hinzufügen.

Beispielanwendung

Die Benutzeroberfläche der Beispielanwendung bauen wir auf dem Beispiel aus dem oben genannten Artikel auf. Dort finden wir bereits Steuerelemente, mit denen Sie eine CSV-Datei zum Importieren ihrer Inhalte auswählen können. Die Inhalte werden dann in einem DataGrid-Steuerelement angezeigt. Hier fügen wir einen weiteren Bereich an, der die Auswahl eines Dateinamens zum Speichern der Inhalte des DataGrid-Elements in einer weiteren CSV-Datei erlaubt. Dieses sieht wie in Bild 1 aus.

Entwurf des Hauptfensters der Anwendung

Bild 1: Entwurf des Hauptfensters der Anwendung

Hier ist der XAML-Code der hier enthaltenen Steuerelemente. Wir verwenden das DataGrid dgrKunden, um die zu exportierenden Daten zu ermitteln. Das TextBox-Steuerelement txtExportfile nimmt den Pfad der zu erstellenden Datei auf.

Diesen ermittelt der Benutzer durch einen Klick auf die Schaltfläche btnChooseSaveFile. Und der eigentliche Export (die erste Version, es folgen weitere), erfolgt über die Schaltfläche btnExport11:

     ...
     <Label Grid.Row="1">Eingelesene Einträge:</Label>
     <DataGrid x:Name="dgrKunden" Grid.Row="2"></DataGrid>
     <GroupBox Header="Beispiele Artikel ''EDM-Daten in CSV exportieren''" FontWeight="Bold" Grid.Row="3">
         <ContentControl FontWeight="Normal" HorizontalAlignment="Stretch">
             <StackPanel Orientation="Vertical" HorizontalAlignment="Stretch">
                 <Grid>
                     <Grid.ColumnDefinitions>
                         <ColumnDefinition Width="Auto"></ColumnDefinition>
                         <ColumnDefinition Width="*"></ColumnDefinition>
                         <ColumnDefinition Width="Auto"></ColumnDefinition>
                     </Grid.ColumnDefinitions>
                     <Label Grid.Column="0">Datei:</Label>
                     <TextBox x:Name="txtExportfile" Grid.Column="1"></TextBox>
                     <Button x:Name="btnChooseSaveFile" Grid.Column="2"                         Click="btnChooseSaveFile_Click" HorizontalAlignment="Right">Datei auswählen</Button>
                 </Grid>
                 <StackPanel Orientation="Horizontal">
                     <Button x:Name="btnExport11" Click="btnExport11_Click">1:1 exportieren</Button>
                 </StackPanel>
             </StackPanel>
         </ContentControl>
     </GroupBox>
</Grid>

Datei zum Speichern festlegen

Die Schaltfläche btnChooseSaveFile löst die folgende Methode aus. Diese erfordert das Vorhanden des folgenden Namespaces:

Imports Microsoft.Win32

Die Methode ermittelt das Startverzeichnis, das gleich beim Öffnen des Dialogs angezeigt werden soll, aus dem Verzeichnis aus dem Textfeld txtImportfile. Ist dieses leer oder enthält es keine vorhandene Datei, wird stattdessen das Verzeichnis der .exe-Datei dieser Anwendung genutzt.

 

Schreibe einen Kommentar