IRONSOFTWAREHOME
IRONXL 사용하여

C#에서 Excel 파일을 SQL Server로 가져오는 방법

Curtis Chau
Curtis Chau
Updated: 2026년 6월 28일

여러 다른 비즈니스 컨텍스트에서 Excel에서 SQL Server로 데이터를 가져오는 것은 일반적인 필요입니다. Excel 파일에서 데이터를 읽고 이를 SQL Server 데이터베이스로 입력하는 것이 이 활동에 포함된 작업입니다. 내보내기 마법사가 종종 사용되지만, IronXL은 데이터 처리에 대한 더 프로그래밍적이고 유연한 접근 방식을 제공합니다. IronXL은 파일에서 Excel 데이터를 가져올 수 있는 강력한 C# 라이브러리입니다; 따라서 이 작업을 가속화할 수 있습니다. 이를 위해 이 게시물에서는 C#을 사용하여 Excel에서 SQL Server로의 가져오기 설정, 실행 및 개선에 대한 철저한 가이드를 제공합니다.

C#에서 Excel을 SQL Server로 가져오는 방법: 그림 1 - IronXL: C# Excel 라이브러리

How to Import Excel to SQL Server in C#

  1. 개발 환경 설정
  2. Excel 파일 준비
  3. SQL Server 데이터베이스에 연결
  4. IronXL을 사용하여 Excel 파일에서 데이터 읽기
  5. IronPDF를 사용하여 데이터 내보내기 및 PDF 보고서 생성
  6. PDF 보고서 검토

IronXL이란 무엇인가요?

IronXL은 때때로 IronXL.Excel이라고도 불리며, .NET 응용 프로그램에서 Excel 파일 작업을 쉽게 할 수 있도록 설계된 기능이 풍부한 C# 라이브러리입니다. 이 강력한 도구는 서버측 응용 프로그램에 이상적이며 개발자가 컴퓨터에 Microsoft Excel을 설치할 필요 없이 Excel 파일을 읽고, 생성하고, 편집할 수 있게 합니다. IronXL은 Excel 2007 이후 버전(.xlsx) 및 Excel 97–2003 버전(.xls)을 지원하여 다양한 Excel 파일 버전 관리를 제공합니다. 워크시트, 행, 열을 조작하는 것 외에도 데이터를 삽입, 업데이트 및 제거하는 것과 같은 중요한 데이터 조작을 허용합니다.

IronXL은 복잡하고 잘 형식화된 스프레드시트를 프로그래밍 방식으로 생성할 수 있도록 셀 서식 및 Excel 수식도 지원합니다. 성능 최적화 및 .NET Framework, .NET Core, .NET 5/6을 포함한 여러 .NET 플랫폼과의 호환성을 통해 IronXL은 대규모 데이터셋을 효과적으로 처리합니다. 간단한 데이터 가져오기/내보내기 작업이나 복잡한 보고 시스템을 위한 응용 프로그램에 Excel 파일 작업을 통합하려는 개발자에게 유연한 옵션이며, 다른 .NET Framework와의 매끄러운 인터페이스 덕분에 가능성 있는 선택입니다.

주요 특징

Excel 파일 읽기 및 쓰기

개발자는 IronXL을 사용하여 Excel 파일에서 데이터를 읽고 쓸 수 있습니다. 새 Excel 파일을 만들고 기존 파일을 편집하는 것이 간단합니다.

Microsoft Excel 설치가 필요 없음

IronXL은 다른 라이브러리와 달리 응용 프로그램을 호스팅하는 컴퓨터에 Microsoft Excel을 설치할 필요가 없습니다. 서버 측 앱에 이상적입니다.

다양한 Excel 형식 지원

.xls(Excel 97-2003) 및 .xlsx(Excel 2007 이후) 형식을 지원함으로써 다양한 Excel 파일 유형을 관리하는 데 있어서 다재다능함을 제공합니다.

새로운 Visual Studio 프로젝트 생성하기

Visual Studio 콘솔 프로젝트는 간단하게 생성할 수 있습니다. Visual Studio에서 콘솔 애플리케이션을 생성하려면 다음 작업을 수행하십시오:

  1. Visual Studio 열기: Visual Studio가 컴퓨터에 설치되어 있는지 확인한 후 엽니다.
  2. 새 프로젝트 시작: File -> New -> Project을 선택합니다.

C#에서 Excel을 SQL Server로 가져오는 방법: 그림 2 - 새로운 클릭

  1. Create a new project 상자의 왼쪽 패널에서 선호하는 프로그래밍 언어를 선택합니다—예를 들어, C#.
  2. 사용할 수 있는 프로젝트 템플릿 목록에서 Console App 또는 Console App (.NET Core) 템플릿을 선택합니다.
  3. 이름 영역에 프로젝트의 이름을 지정합니다.

C#에서 Excel을 SQL Server로 가져오는 방법: 그림 3 - 이름과 저장 위치 제공

  1. 프로젝트를 저장할 위치를 결정하십시오.
  2. 생성을 클릭하여 콘솔 애플리케이션 프로젝트를 시작합니다.

C#에서 Excel을 SQL Server로 가져오는 방법: 그림 4 - 마지막으로 생성 버튼을 클릭하여 애플리케이션 시작

IronXL 라이브러리 설치하기

다가오는 업데이트 때문에 IronXL 라이브러리를 설치해야 합니다. 마지막으로 절차를 완료하기 위해 NuGet 패키지 관리자 콘솔을 실행하고 다음 명령을 입력하십시오:

PM > Install-Package IronXL.Excel

C#에서 Excel을 SQL Server로 가져오는 방법: 그림 5 - IronXL 설치를 위해 위 명령을 NuGet 패키지 관리자 콘솔에 입력

NuGet 패키지 관리자를 사용하여 IronXL 패키지를 검색하는 또 다른 방법입니다. 이렇게 하면 IronXL과 관련된 어떤 NuGet 패키지를 다운로드할지 선택할 수 있습니다.

C#에서 Excel을 SQL Server로 가져오는 방법: 그림 6 - 대안을 찾고 NuGet 패키지 관리자에서 IronXL을 검색하고 설치

IronXL로 Excel을 SQL로 가져오기

IronXL을 사용한 Excel 데이터 읽기

IronXL로 Excel 파일의 데이터를 읽는 프로세스가 더 쉬워졌습니다. 다음 예제는 IronXL을 사용하여 Excel 파일의 데이터를 읽는 방법을 보여줍니다. 이 방법으로 데이터를 읽고 각 행이 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;
    }
}

SQL Server에 연결하기

SQL Server에 연결을 설정하기 위해 System.Data.SqlClient 네임스페이스의 SqlConnection 클래스를 사용합니다. 일반적으로 데이터베이스 이름, 서버 이름, 인증 정보로 구성되는 올바른 연결 문자열을 가지고 있는지 확인하십시오. SQL Server 데이터베이스 연결 및 데이터 추가 방법은 다음 예제에서 다룹니다.

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();
            }
        }
    }
}

IronXL과 SQL Server 결합하기

Excel 파일을 읽고 SQL 데이터베이스에 데이터를 삽입하는 논리가 수립되면 이 기능을 통합하여 가져오기를 완료하십시오. 다음 애플리케이션은 Excel 파일에서 정보를 가져와 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.");
    }
}

이 클래스는 IronXL을 사용하여 주어진 Excel 파일에서 데이터를 읽는 역할을 합니다. ReadExcelFile 함수는 Excel 워크북을 로드하고 첫 번째 워크시트를 열어 데이터 워크시트의 행을 반복하면서 데이터를 수집합니다. 테이블 처리 용이성을 위해 정보는 사전 목록에 저장됩니다.

C#에서 Excel을 SQL Server로 가져오는 방법: 그림 7 - 예제 입력 Excel 파일

이 클래스는 지정된 데이터베이스 테이블에 데이터를 삽입하며 SQL Server 데이터베이스와의 연결을 관리합니다. InsertData 메서드는 SQL 인젝션을 방지하기 위해 매개변수화된 쿼리를 사용하며, 열 이름을 나타내는 사전의 키를 기반으로 동적으로 SQL INSERT 쿼리를 빌드합니다.

Excel 파일에서 데이터를 SQL 테이블로 읽기 위해 ExcelReader 클래스를 사용하고, SQL Server 테이블에 각 행을 삽입하기 위해 SqlServerConnector 클래스를 사용하여 Main 함수가 전체 프로세스를 관리합니다.

C#에서 Excel을 SQL Server로 가져오는 방법: 그림 8 - SQL Server에서 성공적인 쿼리를 보여주는 출력

오류 처리 및 최적화는 견고하고 효율적인 가져오기 프로세스를 보장하는 데 중요합니다. 견고한 오류 처리를 구현하면 누락된 파일, 잘못된 데이터 형식, SQL 예외와 같은 잠재적인 문제를 관리할 수 있습니다. 오류 처리 도입의 예시는 다음과 같습니다.

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

결론

마지막으로, .NET 애플리케이션 내에서 Excel 파일을 관리하는 효과적이고 신뢰할 수 있는 방법은 C#과 IronXL을 사용하여 Excel 데이터를 MS SQL 데이터베이스에 가져오는 것입니다. IronXL은 여러 Excel 형식과 호환되며 Microsoft Excel을 설치하지 않고도 Excel 데이터를 읽고 쓰는 것이 더 쉬워지는 강력한 기능을 가지고 있습니다. System.Data.SqlClient과 IronXL의 통합을 통해 개발자는 매개변수화된 쿼리를 사용하여 데이터 보안을 향상하고 SQL 인젝션을 방지하면서 SQL Server 간에 데이터를 쉽게 이동할 수 있습니다.

마지막으로 IronXL과 Iron Software를 .NET 개발 도구 모음에 추가하면 Excel을 효율적으로 조작하고 PDF를 생성하고 OCR을 수행하며 바코드를 활용할 수 있습니다. IronXL의 사용 편리성, 상호 운용성 및 성능을 Iron Software의 유연한 제품군과 결합하여 원활한 개발 및 애플리케이션 기능 향상을 보장합니다. 프로젝트의 요구에 맞춰 맞춤화된 명확한 라이선스 옵션을 통해 개발자는 올바른 모델을 자신 있게 선택할 수 있습니다. 이러한 이점을 활용하면 개발자는 준수성과 개방성을 유지하면서 다양한 문제를 효과적으로 해결할 수 있습니다.

Curtis Chau
기술 문서 작성자

커티스 차우는 칼턴 대학교에서 컴퓨터 과학 학사 학위를 취득했으며, Node.js, TypeScript, JavaScript, React를 전문으로 하는 프론트엔드 개발자입니다. 직관적이고 미적으로 뛰어난 사용자 인터페이스를 만드는 데 열정을 가진 그는 최신 프레임워크를 활용하고, 잘 구성되고 시각적으로 매력적인 매뉴얼을 제작하는 것을 즐깁니다.

...
더 읽어보기

관련 기사

Key in blue circle

무료 30일 체험 키를 즉시 받으세요.

Your trial license will be sent to your email address

제한 없음. 100% 무제한 이용. 신용카드 불필요.

bullet_checked신용카드나 계정 생성은 필요하지 않습니다.제한 없음. 100% 무제한 이용. 신용카드 불필요.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
무료 라이브 데모를 예약하세요
Booking Badge

전 세계 수백만 엔지니어들이 신뢰하는 제품입니다.

Iron Software의 고객 로고
부담 없는 무료 상담을 받아보세요
아래 양식을 작성하시거나 sales@ironsoftware.com으로 이메일을 보내주세요.
고객님의 정보는 항상 비밀로 유지됩니다.
전 세계 수백만 엔지니어들이 신뢰하는 제품입니다.
Iron Software의 고객 로고
지금 바로 30일 무료 체험판 키를 받으세요.
신용카드나 계정 생성은 필요하지 않습니다.