Inhaltsverzeichnis
Über NuGet installiert
PM> Install-Package Spire.XLS
verwandte Links
Excel-Dateien bleiben ein allgegenwärtiges Format zum Speichern tabellarischer Daten, weshalb die Fähigkeit, sie effizient zu lesen und Informationen daraus zu extrahieren, von entscheidender Bedeutung ist. C# profitiert von der umfangreichen Funktionalität des .NET Frameworks und ist in der Lage, Daten effizient zu bearbeiten. Nutzen C# zum Lesen von Excel-Dateien und ihre Daten in Datenbanken und Datentabellen schreiben oder die Daten für andere Zwecke verwenden, ist eine hervorragende Lösung für Entwickler, um Excel-Daten zu manipulieren.
Dieser Artikel konzentriert sich auf die Verwendung C# zum Lesen von Excel-Dateien. Es umfasst folgende Teile:
- Vorteile und API zum Lesen von Excel-Dateien in C#
- Erste Schritte mit dem Lesen von Excel-Dateien mit C#
- Lesen Sie Excel-Dateien mit C#-Code in Text ein
- Skript in C# zum Einlesen von Excel-Dateien in DataTable
- C#-Code zum Lesen von Excel-Dateien und zum Einfügen in Datenbanken
- Holen Sie sich eine kostenlose Lizenz für die API
Vorteile und API zum Lesen von Excel-Dateien in C#
Die Nutzung von C# zum Lesen von Excel-Dateien bietet folgende Vorteile:
- Automatisierung und Skalierbarkeit: C# ermöglicht mit .NET Framework und APIs die Automatisierung von Leseaufgaben für Excel-Dateien und ermöglicht so die effiziente Verarbeitung großer Datenmengen. Entwickler können Skripte oder Anwendungen erstellen, die Stapelverarbeitung, geplante Aufgaben oder Datenimport-/-exportvorgänge verarbeiten und so Zeit und Aufwand sparen.
- Flexibilität und Anpassung: Das .NET Framework bietet zusammen mit den APIs ein hohes Maß an Flexibilität und Anpassung beim Arbeiten mit Excel-Dateien. Entwickler können benutzerdefinierte Logik definieren, um Daten zu extrahieren und zu transformieren, spezifische Formatierungen anzuwenden oder Berechnungen durchzuführen. Dies ermöglicht die Anpassung des Lesevorgangs an spezifische Anforderungen oder Geschäftsregeln.
Allerdings kann das Lesen von Excel-Dateien nur mit C# und dem .NET Framework eine herausfordernde Aufgabe sein. Die vom .NET Framework bereitgestellte native Bibliothek für die Verarbeitung von Excel-Dateien ist Microsoft.Office.Interop.Excel. Allerdings erfordert die Nutzung dieser Bibliothek die Installation von MS Excel und die Codelogik zur Verarbeitung von Excel-Dateien damit ist äußerst komplex, was das effiziente Lesen von Excel-Dateien erschwert. Aus diesem Grund bevorzugen Entwickler Bibliotheken von Drittanbietern, um effizient und bequem mit Excel-Dateien arbeiten zu können.
Spire.XLS for .NET ist eine professionelle C#-API für die Excel-Dateiverarbeitung. Es bietet umfassende Formatunterstützung und effiziente Excel-Datenbearbeitung, einschließlich des Lesens von Excel-Dateien und des Schreibens der Daten in Datenbanken, Datentabellen usw. Benutzer können dies tun Laden Sie Spire.XLS for .NET von der offiziellen Website herunter oder installieren Sie es über NuGet.
PM> Install-Package Spire.XLS
Erste Schritte mit dem Lesen von Excel-Dateien in C#
Spire.XLS for .NET ermöglicht Entwicklern dies Excel-Dateien erstellen, lesen, schreiben und bearbeiten in ihren .NET-Anwendungen mit einfachem Code.
Um effektiv mit Spire.XLS arbeiten zu können, interagieren Sie mit verschiedenen Klassen, Eigenschaften und Methoden. Hier ist eine Tabelle, die einige der wichtigsten zusammen mit ihren Beschreibungen zusammenfasst:
Artikel | Beschreibung |
Arbeitsbuchklasse | Stellt eine Excel-Arbeitsmappe dar und bietet Methoden zum Lesen und Bearbeiten ihres Inhalts. |
Arbeitsblattklasse | Stellt ein einzelnes Arbeitsblatt innerhalb einer Arbeitsmappe dar. |
Workbook.LoadFromFile-Methode | Lädt eine Excel-Arbeitsmappe aus einer Datei. |
Workbook.Worksheets-Eigenschaft | Ruft die Sammlung von Arbeitsblättern in der Arbeitsmappe ab. |
Worksheet.Range[]-Eigenschaft | Ruft einen Zellbereich im Arbeitsblatt ab (Indizes basieren auf 1). |
CellRange.Value-Eigenschaft | Ruft den Wert einer Zelle ab oder legt diesen fest. |
CellRange.Text-Eigenschaft | Ruft den angezeigten Text einer Zelle ab oder legt diesen fest. |
Der typische Arbeitsablauf bei der Verwendung von Spire.XLS for .NET zum Lesen von Excel-Dateien umfasst die folgenden Schritte:
- Laden Sie die Excel-Datei mit der Methode Workbook.LoadFromFile().
- Greifen Sie über die Eigenschaft Workbook.Worksheets[] auf Arbeitsblätter zu.
- Greifen Sie über die Eigenschaft Worksheet.Range[] auf Zellen zu.
- Greifen Sie über die Eigenschaft CellRange.Text auf angezeigten Text in Zellen zu oder greifen Sie über die Eigenschaft CellRange.Value auf den Wert von Zellen (Text, Zahlen, Formeln usw.) zu
- Rufen Sie die Daten ab, schreiben Sie die Daten in Textdateien, Datenbanken usw. oder führen Sie andere gewünschte Vorgänge aus.
- Um Zellwerte in eine Datentabelle zu exportieren, können Entwickler direkt die Methode Worksheet.ExportDataTable() verwenden, die ein DataTable-Objekt zurückgibt.
- Alternativ können Entwickler Arbeitsmappen auch direkt mit der Methode Workbook.SaveToFile() in jedes unterstützte Format konvertieren.
Kurz gesagt, diese API stellt Klassen und Eigenschaften bereit, die es Entwicklern ermöglichen, Excel-Dateien zu laden und deren Inhalte mit einfachem Code zu lesen, wodurch das Lesen von Excel-Dateien mit C# effizient und einfach wird. Darüber hinaus ermöglicht es direkte Konvertierung von Arbeitsmappen und Arbeitsblättern in PDF, HTML, XML und andere Dateiformate.
C# zum Einlesen von Excel-Dateien in Text
Schritte zum Lesen von Excel-Dateien und Schreiben der Daten in Textdateien mit C#:
- Importieren Sie die benötigten Namespaces.
- Erstellen Sie ein Objekt der Workbook-Klasse und laden Sie eine Excel-Datei mit der Methode Workbook.LoadFromFile().
- Rufen Sie das erste Arbeitsblatt über die Eigenschaft Workbook.Worksheets[] ab.
- Erstellen Sie eine Textdatei, um die Daten in das Arbeitsblatt zu schreiben.
- Durchlaufen Sie die zugewiesenen Zeilen und Spalten, greifen Sie über die Worksheet.Range[]-Eigenschaft auf Zellen zu, rufen Sie den angezeigten Text jeder Zelle über die CellRange.Text-Eigenschaft ab und schreiben Sie ihn in die Textdatei.
- Geben Sie Ressourcen frei.
Codebeispiel:
- C#
using Spire.Xls; using System.IO; class Program { static void Main(string[] args) { // Load the Excel file Workbook workbook = new Workbook(); workbook.LoadFromFile("Sample.xlsx"); // Get the first worksheet Worksheet worksheet = workbook.Worksheets[0]; // Create an output text file string outputFile = "Output.txt"; StreamWriter writer = new StreamWriter(outputFile); // Iterate through the rows and columns of the worksheet and write the data to the text file for (int row = 1; row <= worksheet.LastRow; row++) { for (int col = 1; col <= worksheet.LastColumn; col++) { CellRange range = worksheet.Range[row, col]; string cellValue = range.Text == null ? string.Empty : range.Text.ToString(); writer.Write(cellValue + "\t"); // Separate cell data using a tab character } writer.WriteLine(); // Write a line break } // Close the writer and save the text file writer.Close(); // Release resources workbook.Dispose(); } }
The reading result:
Code in C Sharp zum Einlesen von Excel-Dateien in DataTables
DataTable ist ein Objekt, das eine Datentabelle im .NET Framework darstellt. Es wird zum Speichern und Bearbeiten von Daten im Speicher verwendet und kann Vorgänge wie Sortieren, Filtern, Ändern und Exportieren ausführen. Entwickler können mit C# Excel-Dateidaten lesen und in das DataTable-Objekt schreiben und so die weitere Verarbeitung der Daten erleichtern. Im Folgenden sind die Schritte aufgeführt:
- Importieren Sie die benötigten Namespaces.
- Erstellen Sie ein Objekt der Workbook-Klasse und laden Sie eine Excel-Datei mit der Methode Workbook.LoadFromFile().
- Rufen Sie das erste Arbeitsblatt über die Eigenschaft Workbook.Worksheets[] ab.
- Exportieren Sie die Daten aus dem Arbeitsblatt mit der Methode Worksheet.ExportDataTable() in ein DataTable-Objekt.
- Geben Sie Ressourcen frei.
Codebeispiel:
- C#
using Spire.Xls; using System.Data; namespace ExcelToAccess { class Program { static void Main(string[] args) { // Create an object of Workbook class Workbook workbook = new Workbook(); // Load an Excel file workbook.LoadFromFile("Sample.xlsx"); // Get the first worksheet Worksheet worksheet = workbook.Worksheets[0]; // Export the data from the worksheet to a DataTable object DataTable dataTable = worksheet.ExportDataTable(); workbook.Dispose(); } } }
C#-Code zum Lesen von Excel-Dateien und zum Einfügen in Datenbanken
Dieses Beispiel zeigt, wie Sie mit C#-Code Excel-Arbeitsblattdaten mithilfe einer Access-Datenbank in eine Datenbank schreiben. Diese Methode erfordert außerdem den System.Data.OleDB-Namespace. Wenn das von Ihnen verwendete .NET Framework nicht über es verfügt, können Sie es installieren, indem Sie den folgenden Code in die Paketverwaltungskonsole eingeben:
Install-Package System.Data.OleDb
Die Schritte zum Lesen einer Excel-Datei und zum Einfügen in eine Datenbank sind wie folgt:
- Importieren Sie die benötigten Namespaces.
- Erstellen Sie ein Objekt der Workbook-Klasse und laden Sie eine Excel-Datei mit der Methode Workbook.LoadFromFile().
- Rufen Sie das erste Arbeitsblatt mit der Eigenschaft Workbook.Worksheets[] ab.
- Rufen Sie den Namen des Arbeitsblatts als Tabellennamen ab, indem Sie auf die Eigenschaft Worksheet.Name zugreifen.
- Rufen Sie die erste Zeile als Spaltennamen ab, indem Sie mit der Eigenschaft Worksheet.Rows[] auf das CellRange-Objekt der ersten Zeile zugreifen und den Wert jeder Spalte in einem String-Array speichern.
- Stellen Sie mithilfe der OleDbConnection eine Verbindung zur Access-Datenbank her, indem Sie die Verbindungszeichenfolge und den Dateipfad der Datenbank angeben.
- Erstellen Sie die Datentabelle, indem Sie dynamisch eine SQL-Abfragezeichenfolge zum Erstellen der Tabelle generieren, einschließlich Tabellenname, Spaltennamen und Datentypen.
- Führen Sie die Abfrage zum Erstellen einer Tabelle mit einem OleDbCommand-Objekt und der ExecuteNonQuery-Methode aus.
- Fügen Sie die Daten ein, indem Sie jede Zeile des Excel-Arbeitsblatts durchlaufen (beginnend mit der zweiten Zeile) und eine Einfügeanweisung mit parametrisierten Abfragen erstellen. Fügen Sie jede Datenzeile in die Access-Datenbanktabelle ein.
- Schließen Sie die Datenbankverbindung und geben Sie Ressourcen frei.
Codebeispiel:
- C#
using Spire.Xls; using System.Data.OleDb; class Program { static void Main(string[] args) { // Set the Excel file path string excelFilePath = "Sample.xlsx"; // Set the Access database file path string accessDbFilePath = "Sample.accdb"; // Load the Excel file Workbook workbook = new Workbook(); workbook.LoadFromFile(excelFilePath); // Get the first worksheet Worksheet worksheet = workbook.Worksheets[0]; // Use the worksheet name as the table name string tableName = worksheet.Name; // Get the first row as column names CellRange headerRange = worksheet.Rows[0]; string[] columnNames = new string[headerRange.Columns.Length]; for (int i = 0; i < headerRange.Columns.Length; i++) { columnNames[i] = headerRange.Columns[i].Value.Replace(" ", "_"); } // Connect to the Access database string connectionString = $"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={accessDbFilePath};Persist Security Info=False;"; using (OleDbConnection connection = new OleDbConnection(connectionString)) { connection.Open(); // Create the table string createTableQuery = $"CREATE TABLE [{tableName}] ({string.Join(", ", columnNames.Select(c => $"[{c}] Memo"))})"; using (OleDbCommand createTableCommand = new OleDbCommand(createTableQuery, connection)) { createTableCommand.ExecuteNonQuery(); } // Insert data string insertQuery = $"INSERT INTO [{tableName}] ({string.Join(", ", columnNames.Select(c => $"[{c}]"))}) VALUES ({string.Join(", ", columnNames.Select(c => $"@{c}"))})"; using (OleDbCommand insertCommand = new OleDbCommand(insertQuery, connection)) { foreach (CellRange row in worksheet.Rows.Cast().Skip(1)) { for (int i = 0; i < row.Columns.Length; i++) { insertCommand.Parameters.AddWithValue($"@{columnNames[i]}", row.Columns[i].Value); } insertCommand.ExecuteNonQuery(); insertCommand.Parameters.Clear(); } } connection.Close(); workbook.Dispose(); } } }
Das Lese- und Einfügeergebnis:
Holen Sie sich eine kostenlose Lizenz für die API
Spire.XLS for .NET bietet eine kostenlose Testlizenz, mit der Entwickler, Unternehmen und einzelne Benutzer die leistungsstarken Excel-Dateiverarbeitungsfunktionen ohne Nutzungsbeschränkungen oder Wasserzeichen erkunden können. Von eine kostenlose Lizenz erhalten, Benutzer können das Potenzial von Spire.XLS for .NET maximieren, ihre Dateiverarbeitungsmöglichkeiten erweitern und ihre Effizienz bei der Verarbeitung von Excel-Dateien erheblich verbessern.
Abschluss
IIn diesem Artikel erfahren Sie, wie das geht Verwenden Sie C#, um Excel-Dateien zu lesen und Extrahieren von Daten für verschiedene Zwecke. Durch die Nutzung der leistungsstarken Funktionen von Spire.XLS for .NET können Entwickler Excel-Daten effizient bearbeiten, in verschiedene Formate exportieren und datengesteuerte Anwendungen verbessern. Mit Schritt-für-Schritt-Anleitungen, Codebeispielen und grafischen Darstellungen der Verarbeitungsergebnisse hilft dieser Leitfaden dabei, die Effizienz der Dateiverarbeitung zu optimieren und das volle Potenzial der Datenanalyse in C#-Projekten auszuschöpfen.