Zum Hauptinhalt springen

So importieren Sie Excel in ein DataGrid in WPF: eine einfache Anweisung

Das Importieren von Daten aus Excel in ein DataGrid ist eine der wichtigsten Aufgaben bei der Entwicklung von WPF-Anwendungen. Auf diese Weise können Sie Anwendungen erstellen, die die in Excel gespeicherten Daten verwenden und sie leicht in Tabellen anzeigen können, um sie weiter zu verarbeiten oder dem Benutzer darzustellen. In dieser einfachen Anleitung werden wir uns ansehen, wie man eine Excel-Datei in ein Datagrid importiert und auf die Daten zugreift.

Der erste Schritt beim Importieren von Daten aus Excel besteht darin, eine Excel-Bibliothek mit einem WPF-Projekt zu verbinden. Dazu können wir die Bibliothek ExcelDataReader oder ClosedXML verwenden, die praktische Werkzeuge für die Arbeit mit Excel-Dateien bieten. Die Auswahl der Bibliothek hängt von Ihren Vorlieben und Anforderungen des Projekts ab.

Nachdem wir die Bibliothek angeschlossen haben, können wir die Excel-Datei mit Code öffnen und den Inhalt lesen. Dann können wir die Daten in ein Format konvertieren, das das DataGrid verstehen und anzeigen kann. Normalerweise verwenden wir eine DataTable für diesen Zweck, da ein DataGrid an diesen Datentyp gebunden werden kann.

Das Importieren von Excel in ein DataGrid kann mit mehreren Zeilen Code implementiert werden. Wir können eine neue Instanz der ExcelReader-Klasse erstellen, eine Excel-Datei öffnen, ihren Inhalt in eine DataTable lesen und die DataTable dann mithilfe der ItemsSource-Eigenschaft an das DataGrid binden. Als Ergebnis dieses Vorgangs wird die Excel-Datei im DataGrid mit denselben Daten angezeigt, die sich in der ursprünglichen Excel-Datei befanden.

So fügen Sie Excel zu einem DataGrid in WPF hinzu: Schritt für Schritt Anleitung

Das Automatisieren des Datenimports von Excel in ein WPF-DataGrid kann eine sehr nützliche Funktion für die Anwendungsentwicklung sein. In dieser schrittweisen Anleitung zeige ich Ihnen, wie Sie diese Funktion mit WPF und der ExcelDataReader-Bibliothek implementieren.

Schritt 1: Installieren der ExcelDataReader-Bibliothek

Der erste Schritt besteht darin, die ExcelDataReader-Bibliothek in Ihrem Projekt zu installieren. Öffnen Sie dazu den NuGet-Paketmanager, suchen Sie nach dem ExcelDataReader-Paket und installieren Sie es in Ihrem Projekt.

Schritt 2: Hinzufügen einer Schaltfläche und eines DataGrid zum XAML-Markup

Fügen Sie Ihrem XAML-Markup eine Schaltfläche und ein DataGrid hinzu. Die Schaltfläche wird verwendet, um eine Excel-Datei auszuwählen, und das DataGrid wird verwendet, um die Daten aus der Datei anzuzeigen.

Schritt 3: Umgang mit dem Klick auf die Importschaltfläche

Fügen Sie der Schaltfläche zum Importieren einer Datei einen Click-Ereignishandler hinzu. In diesem Handler öffnen wir zuerst den Dateiauswahldialog mit OpenFileDialog. Dann verwenden wir den ExcelDataReader, um die Daten aus der ausgewählten Datei zu lesen und das DataGrid zu füllen.

var openFileDialog = new OpenFileDialog();

openFileDialog.Filter = "Excel Files (*.xls;*.xlsx)|*.xls;*.xlsx";

if (openFileDialog.ShowDialog() == true)

var path = openFileDialog.FileName;

using (var stream = File.Open(path, FileMode.Open, FileAccess.Read))

using (var reader = ExcelReaderFactory.CreateReader(stream))

var result = reader.AsDataSet(new ExcelDataSetConfiguration()

ConfigureDataTable = (tableReader) => new ExcelDataTableConfiguration()

Schritt 4: Starten der App

Jetzt können Sie Ihre Anwendung starten und auf die Schaltfläche Datei auswählen klicken. Nachdem Sie eine Excel-Datei ausgewählt haben, wird sie in das DataGrid importiert und auf dem Bildschirm angezeigt.

Das ist alles! Jetzt haben Sie eine einfache Anweisung, mit der Sie Excel zum DataGrid in WPF mit der ExcelDataReader-Bibliothek hinzufügen können.

Vorbereiten einer Excel-Datei

Bevor Sie eine Excel-Datei in ein DataGrid in WPF importieren, müssen Sie einige vorbereitende Schritte ausführen:

  • Erstellen oder öffnen Sie eine Excel-Datei mit den Daten, die Sie importieren möchten.
  • Stellen Sie sicher, dass die Daten in der Datei in einer Tabelle organisiert sind, wobei jede Zeile einen Datensatz darstellt und jede Spalte ein bestimmtes Datenfeld enthält.
  • Stellen Sie sicher, dass die Spaltennamen in der Excel-Datei mit den Feldern übereinstimmen, die Sie im DataGrid anzeigen möchten.
  • Legen Sie die Spaltenüberschriften fest, wenn sie im DataGrid angezeigt werden sollen.
  • Speichern Sie die Datei im Format .xlsx oder .xls, damit es geöffnet und in die WPF-Anwendung importiert werden kann.

Nachdem Sie eine Excel-Datei vorbereitet haben, können Sie mit dem Importieren ihrer Daten in ein DataGrid in WPF beginnen.

Erstellen eines WPF-Projekts

Bevor Sie Excel in ein DataGrid in WPF importieren können, müssen Sie ein WPF-Projekt erstellen. Hier ist eine einfache Anleitung zum Erstellen eines Projekts:

Schritt 1: Öffnen Sie Visual Studio, und wählen Sie Projekt erstellen aus.

Schritt 2: Wählen Sie im angezeigten Fenster "WPF App (.NET Framework)" aus und klicken Sie auf Weiter.

Schritt 3: Geben Sie einen Projektnamen ein, und wählen Sie einen Speicherort aus, an dem das Projekt gespeichert werden soll. Klicken Sie auf Erstellen.

Schritt 4: Visual Studio erstellt automatisch ein neues WPF-Projekt mit dem Standard-MainWindow-Fenster.xaml und MainWindow.xaml.cs.

Schritt 5: Jetzt können Sie mit dem Importieren von Excel in ein DataGrid innerhalb eines bestimmten Projekts beginnen. Zuerst müssen Sie die erforderlichen NuGet-Pakete installieren und die Verbindung zur Excel-Datenbank einrichten. Sie können dann WPF-Steuerelemente erstellen und anpassen, um Excel-Daten anzuzeigen.

Hinweis: Stellen Sie sicher, dass Sie die richtige Version ausgewählt haben .NET Framework beim Erstellen eines Projekts, um die Kompatibilität mit den NuGet-Bibliotheken und -Paketen zu gewährleisten, die Sie verwenden möchten.

Hinzufügen einer Interop-Bibliothek für die Arbeit mit Excel

Um Excel-Daten in einer WPF-Anwendung verarbeiten zu können, müssen Sie eine Interop-Bibliothek hinzufügen, die die Interaktion mit Excel ermöglicht. Befolgen Sie dazu die nachstehenden Anweisungen:

  1. Öffnen Sie Ihr Projekt in der Visual Studio-Entwicklungsumgebung.
  2. Klicken Sie mit der rechten Maustaste auf das importierte Projekt und wählen Sie "NuGet-Pakete installieren".
  3. Suchen Sie im Fenster "NuGet-Pakete installieren" die Microsoft-Bibliothek, und installieren Sie sie.Office.Interop.Excel".
  4. Fügen Sie nach der Installation der Bibliothek Ihrem Code die folgenden Namespaces hinzu:
using Excel = Microsoft.Office.Interop.Excel;using System.Runtime.InteropServices;

Die erste Zeile ermöglicht die Verwendung von Excel-Funktionen und die zweite Zeile hilft Ihnen, Ressourcen freizugeben, nachdem Sie mit Excel gearbeitet haben.

Ihr Projekt ist jetzt bereit, Daten aus Excel in ein DataGrid in WPF zu importieren.

Schreiben von Code zum Importieren von Excel in ein DataGrid

In diesem Abschnitt erfahren Sie, wie Sie Code schreiben, um Daten aus Excel in ein DataGrid in WPF zu importieren. Wir werden die EPPlus-Bibliothek verwenden, um mit Excel zu arbeiten.

Schritt 1:

Am Anfang fügen Sie dem Projekt einen Verweis auf die EPPlus-Bibliothek hinzu. Sie können dies tun, indem Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt klicken, NuGet-Pakete verwalten auswählen und das EPPlus-Paket installieren.

Schritt 2:

Jetzt müssen Sie die ExcelPackage-Klasse aus der EPPlus-Bibliothek instanziieren und die Excel-Datei öffnen.

Beispielcode dafür:

string filePath = "Pfad zur Dateiexcel";

using (ExcelPackage package = new ExcelPackage(new FileInfo(filePath)))

// Code für die Arbeit mit dem Excel-Paket

Schritt 3:

Als nächstes müssen Sie das Arbeitsblatt in der Excel-Datei auswählen, mit dem Sie arbeiten möchten.

ExcelWorksheet worksheet = package.Workbook.Worksheets["listenname"];

Schritt 4:

Jetzt können Sie die Daten aus einem Excel-Arbeitsblatt abrufen und dem DataGrid hinzufügen.

DataTable dataTable = new DataTable();

// Fügen Sie der DataTable Spalten hinzu

// Fügen Sie Zeilen zur DataTable hinzu

DataRow dataRow = dataTable.NewRow();

dataRow[col - 1] = worksheet.Cells[row, col].Value;

Schritt 5:

Schließlich können Sie Daten aus Excel in einem DataGrid anzeigen, indem Sie die ItemsSource-Eigenschaft auf die im vorherigen Schritt abgerufene DataTable-Instanz festlegen.

Mit diesen Schritten können Sie Code schreiben, um Daten aus Excel in ein DataGrid in WPF mit der EPPlus-Bibliothek zu importieren.

Herstellen einer Beziehung zwischen DataGrid und Excel

Nachdem Sie die Daten erfolgreich aus Excel in ein DataGrid in WPF importiert haben, müssen Sie möglicherweise eine Beziehung zwischen den beiden Elementen herstellen. Dadurch können Sie die Daten direkt in der DataGrid-Tabelle aktualisieren und die Änderungen wieder in Excel speichern.

Um eine Beziehung zwischen einem DataGrid und Excel herzustellen, müssen Sie die DataTable-Klasse verwenden. Mit der Load-Methode dieser Klasse können Sie Daten aus Excel in ein DataTable-Objekt laden.

Im Folgenden finden Sie einen Beispielcode, der veranschaulicht, wie eine Beziehung zwischen einem DataGrid und Excel hergestellt wird:

string excelFilePath = "путь_к_файлу_Excel";string connectionString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=;Extended Properties='Excel 12.0 Xml;HDR=YES;'", excelFilePath);using (OleDbConnection connection = new OleDbConnection(connectionString))>

In diesem Beispiel erstellen Sie ein OleDbConnection-Objekt, mit dem Sie eine Verbindung mit einer Excel-Datei herstellen können. Verwenden Sie dann ein OleDbDataAdapter-Objekt, um eine SQL-Abfrage auszuführen, um Daten aus Excel in ein DataTable-Objekt abzurufen. Schließlich binden Sie eine DataTable an ein DataGrid-Objekt, indem Sie die Datenquelle für das DataGrid mithilfe der AsDataView-Methode des DataTable-Objekts festlegen.

Wenn Sie nun Änderungen am DataGrid vornehmen, werden die Änderungen automatisch in der DataTable widergespiegelt. Um die Änderungen wieder in Excel zu speichern, müssen Sie die Logik implementieren, um die Excel-Tabelle basierend auf dem DataTable-Objekt zu aktualisieren, nachdem Benutzer das DataGrid beendet haben.

Laden von Daten aus Excel in ein DataGrid

Wenn Sie mit einer WPF-Anwendung arbeiten und Daten aus Excel in ein DataGrid-Steuerelement laden müssen, sind Sie an der richtigen Stelle. In diesem Tutorial zeige ich Ihnen eine einfache Möglichkeit, Daten aus Excel zu importieren und in einem DataGrid anzuzeigen.

Zunächst müssen Sie einen Verweis auf die Microsoft-Bibliothek hinzufügen.Office.Interop.Excel . Diese Bibliothek bietet uns die notwendigen Klassen und Methoden, um mit Excel zu arbeiten.

Nachdem Sie einen Verweis auf die Bibliothek hinzugefügt haben, müssen Sie eine Instanz der Application-Klasse aus der Microsoft-Bibliothek erstellen.Office.Interop.Excel . Diese Klasse ist eine Excel-Anwendung.

Als nächstes öffnen Sie die Excel-Datei mit der Workbooks-Methode.Open() . Sie müssen den Pfad zu der Datei angeben, mit der Sie arbeiten möchten.

Nachdem Sie die Datei geöffnet haben, müssen Sie das aktive Excel-Arbeitsblatt mithilfe der ActiveSheet-Eigenschaft auswählen.

Jetzt können Sie die Daten mit der Range-Methode aus Excel abrufen. Sie müssen den Bereich der Zellen angeben, aus denen Sie Daten abrufen möchten.

Nachdem Sie die Daten erhalten haben, können Sie sie an das DataGrid übergeben. Sie müssen die resultierenden Daten mit einer Schleife durchlaufen und sie mit der Add() -Methode für jede Zeile zum DataGrid hinzufügen.

Vergessen Sie nicht, Excel mit der Application-Methode zu schließen.Quit() nach Abschluss der Arbeit.

using Microsoft.Office.Interop.Excel;// Создание экземпляра приложения ExcelApplication excel = new Application();// Открытие файла ExcelWorkbook workbook = excel.Workbooks.Open("путь_к_файлу");// Выбор активного листаWorksheet worksheet = workbook.ActiveSheet;// Получение данных из ExcelRange range = worksheet.UsedRange;// Добавление данных в DataGridfor (int row = 1; row >dataGrid.Items.Add(rowData);>// Закрытие приложения Excelexcel.Quit();

Jetzt haben Sie eine einfache Möglichkeit, Daten aus Excel in ein DataGrid-Steuerelement in WPF zu laden. Sie können diesen Code an Ihre Bedürfnisse anpassen und zusätzliche Funktionalität hinzufügen.