C# zum Lesen von Excel-Dateien und zum Exportieren von Daten in DataTable und Datenbank

2024-01-25 07:14:39

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.

C# to Read Excel Files and Export Data to DataTable and Database

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#

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:

  1. Laden Sie die Excel-Datei mit der Methode Workbook.LoadFromFile().
  2. Greifen Sie über die Eigenschaft Workbook.Worksheets[] auf Arbeitsblätter zu.
  3. Greifen Sie über die Eigenschaft Worksheet.Range[] auf Zellen zu.
  4. 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
  5. Rufen Sie die Daten ab, schreiben Sie die Daten in Textdateien, Datenbanken usw. oder führen Sie andere gewünschte Vorgänge aus.
  6. Um Zellwerte in eine Datentabelle zu exportieren, können Entwickler direkt die Methode Worksheet.ExportDataTable() verwenden, die ein DataTable-Objekt zurückgibt.
  7. 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#:

  1. Importieren Sie die benötigten Namespaces.
  2. Erstellen Sie ein Objekt der Workbook-Klasse und laden Sie eine Excel-Datei mit der Methode Workbook.LoadFromFile().
  3. Rufen Sie das erste Arbeitsblatt über die Eigenschaft Workbook.Worksheets[] ab.
  4. Erstellen Sie eine Textdatei, um die Daten in das Arbeitsblatt zu schreiben.
  5. 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.
  6. 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:

C# to Read Excel Files and Export Data to DataTable and Database

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:

  1. Importieren Sie die benötigten Namespaces.
  2. Erstellen Sie ein Objekt der Workbook-Klasse und laden Sie eine Excel-Datei mit der Methode Workbook.LoadFromFile().
  3. Rufen Sie das erste Arbeitsblatt über die Eigenschaft Workbook.Worksheets[] ab.
  4. Exportieren Sie die Daten aus dem Arbeitsblatt mit der Methode Worksheet.ExportDataTable() in ein DataTable-Objekt.
  5. 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:

  1. Importieren Sie die benötigten Namespaces.
  2. Erstellen Sie ein Objekt der Workbook-Klasse und laden Sie eine Excel-Datei mit der Methode Workbook.LoadFromFile().
  3. Rufen Sie das erste Arbeitsblatt mit der Eigenschaft Workbook.Worksheets[] ab.
  4. Rufen Sie den Namen des Arbeitsblatts als Tabellennamen ab, indem Sie auf die Eigenschaft Worksheet.Name zugreifen.
  5. 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.
  6. Stellen Sie mithilfe der OleDbConnection eine Verbindung zur Access-Datenbank her, indem Sie die Verbindungszeichenfolge und den Dateipfad der Datenbank angeben.
  7. Erstellen Sie die Datentabelle, indem Sie dynamisch eine SQL-Abfragezeichenfolge zum Erstellen der Tabelle generieren, einschließlich Tabellenname, Spaltennamen und Datentypen.
  8. Führen Sie die Abfrage zum Erstellen einer Tabelle mit einem OleDbCommand-Objekt und der ExecuteNonQuery-Methode aus.
  9. 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.
  10. 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:

C# to Read Excel Files and Export Data to DataTable and Database

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.

Siehe auch