IRONSOFTWAREHOME
KORZYSTANIE Z IRONXL

Jak zaimportować plik Excel do serwera SQL w języku C#

Curtis Chau
Curtis Chau
Updated: 28 czerwca 2026

W wielu różnych kontekstach biznesowych importowanie danych z Excela do SQL Server jest typową koniecznością. Czytanie danych z pliku Excela i wprowadzanie ich do bazy danych SQL Server to zadania związane z tą czynnością. Chociaż często używa się kreatora eksportu, IronXL dostarcza bardziej programistycznego i elastycznego podejścia do obsługi danych. IronXL to potężna biblioteka C#, która może importować dane z Excela z plików; dlatego jest możliwe przyspieszenie tej operacji. W tym celu, ten post dostarczy szczegółowego przewodnika jak skonfigurować, wykonać i zoptymalizować import Excela do SQL Server za pomocą C#.

Jak zaimportować Excela do SQL Server w C#: Rysunek 1 - IronXL: Biblioteka C# Excel

How to Import Excel to SQL Server in C#

  1. Skonfiguruj swoje środowisko deweloperskie
  2. Przygotuj swój plik Excel
  3. Połącz się z bazą danych SQL Server
  4. Odczytaj dane z plików Excel za pomocą IronXL
  5. Eksportuj dane i generuj raport PDF za pomocą IronPDF
  6. Przeglądaj raport PDF

Czym jest IronXL?

IronXL, czasami określana jako IronXL.Excel, to bogata w funkcje biblioteka C# stworzona w celu ułatwienia pracy z plikami Excel w aplikacjach .NET. To wydajne narzędzie jest idealne do aplikacji po stronie serwera, ponieważ umożliwia deweloperom czytanie, tworzenie i edycję plików Excela bez potrzeby instalowania Microsoft Excel na komputerze. IronXL obsługuje formaty Excela od 2007 i późniejsze (.xlsx) oraz Excela 97–2003 (.xls), zapewniając wszechstronność w zarządzaniu różnymi wersjami plików Excel. Umożliwia znaczącą manipulację danymi, jak manipulacja arkuszami kalkulacyjnymi, wierszami i kolumnami, oprócz inserowania, aktualizowania i usuwania danych.

IronXL wspiera również formatowanie komórek i formuły z Excela, co pozwala na zaprogramowane generowanie skomplikowanych i dobrze sformatowanych arkuszy kalkulacyjnych. Dzięki optymalizacji wydajności i zgodności z wieloma platformami .NET, w tym .NET Framework, .NET Core i .NET 5/6, IronXL gwarantuje efektywne zarządzanie dużymi zbiorami danych. Jest to elastyczna opcja dla deweloperów chcących zintegrować operacje na plikach Excel ze swoimi aplikacjami, czy to do prostych działań import/eksport danych, czy skomplikowanych systemów raportowania, dzięki płynnemu interfejsowi z innymi frameworkami .NET.

Najważniejsze cechy

Czytaj i zapisuj pliki Excel

Deweloperzy mogą odczytywać i zapisywać dane do i z plików Excel za pomocą IronXL. Łatwo jest stworzyć nowe pliki Excel i edytować te już istniejące.

Nie wymaga instalacji Microsoft Excel

W przeciwieństwie do niektórych innych bibliotek, IronXL nie wymaga instalacji Microsoft Excel na komputerze, który hostuje aplikację. Ze względu na to, jest idealna do aplikacji serwerowych.

Wsparcie dla różnych formatów Excela

Biblioteka oferuje wszechstronność w zarządzaniu różnymi typami plików Excela poprzez wsparcie formatu .xls (Excel 97-2003) i .xlsx (Excel 2007 i późniejsze).

Utwórz nowy projekt Visual Studio

Projekt konsolowy Visual Studio jest prosty do stworzenia. W Visual Studio wykonaj następujące czynności, aby stworzyć Aplikację Konsolową:

  1. Otwórz Visual Studio: Upewnij się, że zainstalowałeś Visual Studio na swoim komputerze przed jego otwarciem.
  2. Rozpocznij nowy projekt: Wybierz File -> New -> Project.

Jak zaimportować Excela do SQL Server w C#: Rysunek 2 - Kliknij Nowy

  1. Z lewego panelu okna Create a new project wybierz preferowany język programowania, na przykład C#.
  2. Wybierz szablon Console App lub Console App (.NET Core) z listy dostępnych szablonów projektów.
  3. W polu Nazwa nadaj swojemu projektowi nazwę.

Jak zaimportować Excela do SQL Server w C#: Rysunek 3 - Podaj nazwę i lokalizację zapisu

  1. Zdecyduj o lokalizacji zapisu projektu.
  2. Kliknij Utwórz aby uruchomić projekt aplikacji konsolowej.

Jak zaimportować Excela do SQL Server w C#: Rysunek 4 - Na koniec kliknij utwórz, aby uruchomić aplikację

Instalacja biblioteki IronXL

Instalacja biblioteki IronXL jest wymagana z powodu nadchodzącej aktualizacji. Na koniec, aby zakończyć procedurę, uruchom konsolę Zarządzania Pakietami NuGet i wpisz następujące polecenie:

PM > Install-Package IronXL.Excel

Jak zaimportować Excela do SQL Server w C#: Rysunek 5 - Wprowadź powyższą komendę w konsoli Menedżera pakietów NuGet, aby zainstalować IronXL

Inną metodą jest użycie Menedżera pakietów NuGet do wyszukania pakietu IronXL. To pozwala na wybranie, które z pakietów NuGet powiązanych z IronXL pobrać.

Jak zaimportować Excela do SQL Server w C#: Rysunek 6 - Alternatywnie wyszukaj IronXL za pomocą Menedżera pakietów NuGet i zainstaluj go

Importuj Excel do SQL za pomocą IronXL

Czytanie danych z Excela za pomocą IronXL

Proces czytania danych z plików Excel jest ułatwiony za pomocą IronXL. Poniższy przykład pokazuje, jak używać IronXL do odczytu danych z pliku Excel. Przy tym podejściu dane są czytane i zapisywane w liście słowników, z których każdy odpowiada jednemu wierszowi w arkuszu Excel.

using IronXL;
using System;
using System.Collections.Generic;

public class ExcelReader
{
    public static List<Dictionary<string, object>> ReadExcelFile(string filePath)
    {
        // Initialize a list to store data from Excel
        var data = new List<Dictionary<string, object>>();

        // Load the workbook from the file path provided
        WorkBook workbook = WorkBook.Load(filePath);

        // Access the first worksheet in the workbook
        WorkSheet sheet = workbook.WorkSheets[0];

        // Retrieve column headers from the first row
        var headers = new List<string>();
        foreach (var header in sheet.Rows[0].Columns)
        {
            headers.Add(header.ToString());
        }

        // Loop through each row starting from the second row
        for (int i = 1; i < sheet.Rows.Count; i++)
        {
            // Create a dictionary to store the row data associated with column headers
            var rowData = new Dictionary<string, object>();
            for (int j = 0; j < headers.Count; j++)
            {
                rowData[headers[j]] = sheet.Rows[i][j].Value;
            }
            data.Add(rowData);
        }

        return data;
    }
}

Łączenie się z SQL Server

Użyj klasy SqlConnection z przestrzeni nazw System.Data.SqlClient, aby ustanowić połączenie z SQL Server. Upewnij się, że masz właściwy łańcuch połączeń, który zazwyczaj składa się z nazwy bazy danych, nazwy serwera i informacji o uwierzytelnieniu. Jak połączyć się z bazą danych SQL Server i dodać dane jest omówione w poniższym przykładzie.

using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;

public class SqlServerConnector
{
    private string connectionString;

    // Constructor accepts a connection string
    public SqlServerConnector(string connectionString)
    {
        this.connectionString = connectionString;
    }

    // Inserts data into the specified table
    public void InsertData(Dictionary<string, object> data, string tableName)
    {
        using (SqlConnection connection = new SqlConnection(connectionString))
        {
            connection.Open();

            // Construct an SQL INSERT command with parameterized values to prevent SQL injection
            var columns = string.Join(",", data.Keys);
            var parameters = string.Join(",", data.Keys.Select(key => "@" + key));
            string query = $"INSERT INTO {tableName} ({columns}) VALUES ({parameters})";

            using (SqlCommand command = new SqlCommand(query, connection))
            {
                // Add parameters to the command
                foreach (var kvp in data)
                {
                    command.Parameters.AddWithValue("@" + kvp.Key, kvp.Value ?? DBNull.Value);
                }

                // Execute the command
                command.ExecuteNonQuery();
            }
        }
    }
}

Łączenie IronXL z SQL Server

Gdy logika do odczytu plików Excel oraz umieszczania danych w bazie SQL została ustalona, zintegrowanie tych funkcji do zakończenia procesu importu. Poniższa aplikacja odbiera informacje z pliku Excel i dodaje je do bazy danych Microsoft SQL Server.

using System;
using System.Collections.Generic;

class Program
{
    static void Main(string[] args)
    {
        // Define the path to the Excel file, SQL connection string, and target table name
        string excelFilePath = "path_to_your_excel_file.xlsx";
        string connectionString = "your_sql_server_connection_string";
        string tableName = "your_table_name";

        // Read data from Excel
        List<Dictionary<string, object>> excelData = ExcelReader.ReadExcelFile(excelFilePath);

        // Create an instance of the SQL connector and insert data
        SqlServerConnector sqlConnector = new SqlServerConnector(connectionString);
        foreach (var row in excelData)
        {
            sqlConnector.InsertData(row, tableName);
        }

        Console.WriteLine("Data import completed successfully.");
    }
}

Ta klasa odpowiada za użycie IronXL do odczytywania danych z podanego pliku Excel. Funkcja ReadExcelFile ładuje skoroszyt Excel, otwiera pierwszy arkusz i zbiera dane, przechodząc przez wiersze arkusza danych. Aby ułatwić obsługę tabel, informacje są przechowywane w liście słowników.

Jak zaimportować Excela do SQL Server w C#: Rysunek 7 - Przykładowy plik wejściowy Excel

Dane są wstawiane do wyznaczonej tabeli bazy przez tę klasę, która również zarządza połączeniem z bazą danych SQL Server. Metoda InsertData używa zapytań parametryzowanych, aby zapobiec wstrzykiwaniu SQL, i dynamicznie buduje zapytanie SQL INSERT na podstawie kluczy słownika, które reprezentują nazwy kolumn.

Używając klasy ExcelReader do wczytywania danych do tabeli SQL z pliku Excel oraz klasy SqlServerConnector do wstawiania każdego wiersza do tabeli SQL Server, funkcja Main zarządza całym procesem.

Jak zaimportować Excela do SQL Server w C#: Rysunek 8 - Wynik pokazujący pomyślne zapytanie w SQL Server

Obsługa błędów i optymalizacja są kluczowe dla zapewnienia solidnego i wydajnego procesu importu. Wdrożenie solidnej obsługi błędów potrafi zarządzać potencjalnymi problemami, jak brakujące pliki, nieprawidłowe formaty danych i wyjątki SQL. Oto przykład włączenia obsługi błędów.

try
{
    // Insert the importing logic here
}
catch (Exception ex)
{
    Console.WriteLine("An error occurred: " + ex.Message);
}

Wnioski

Wreszcie, skuteczną i niezawodną metodą zarządzania plikami Excel w aplikacjach .NET jest import danych z Excela do bazy danych MS SQL za pomocą C# i IronXL. IronXL jest kompatybilne z wieloma formatami Excela i posiada silne możliwości ułatwiające czytanie i zapisywanie danych Excel bez potrzeby instalacji Microsoft Excel. Dzięki integracji System.Data.SqlClient z IronXL, deweloperzy mogą łatwo przenosić dane między serwerami SQL, używając zapytań parametryzowanych do poprawy bezpieczeństwa i zapobiegania wstrzykiwaniu SQL.

Na koniec, dodanie IronXL i Iron Software do swojego zestawu narzędzi do rozwoju .NET pozwala na efektywne manipulowanie Excelem, tworzenie PDFów, przeprowadzanie OCR oraz używanie kodów kreskowych. Łącząc elastyczną Suite Iron Software z prostotą użytkowania, interoperacyjnością i wydajnością IronXL, gwarantuje się usprawnienie rozwoju i poprawę zdolności aplikacji. Dzięki jasnym opcjom licencji, które są dostosowane do wymagań projektu, deweloperzy mogą wybrać właściwy model z pewnością. Korzystając z tych korzyści, deweloperzy mogą skutecznie stawić czoła szeregu trudności, zachowując zgodność i przejrzystość.

Curtis Chau
Autor tekstów technicznych

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podręczników.

...
Czytaj więcej

Powiązane artykuły

Key in blue circle

Uzyskaj natychmiast swój darmowy 30-dniowy Klucz Testowy.

Your trial license will be sent to your email address

Brak ograniczeń. 100% dostępności. Bez karty kredytowej.

bullet_checkedNie wymaga karty kredytowej ani tworzenia kontaBrak ograniczeń. 100% dostępności. Bez karty kredytowej.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Zarezerwuj swoje darmowe Demo na żywo
Booking Badge

Zaufane przez miliony inżynierów na całym świecie

Logotypy klientów Iron Software
Otrzymaj swoje Konsultacja Bez Zobowiązań
Wypełnij poniższy formularz lub wyślij e-mail na sales@ironsoftware.com
Twoje dane zawsze będą utrzymywane w tajemnicy.
Zaufane przez miliony inżynierów na całym świecie
Logotypy klientów Iron Software
Otrzymaj swój darmowy Klucz Próbny na 30 dni natychmiast.
Nie wymaga karty kredytowej ani tworzenia konta