푸터 콘텐츠로 바로가기
다른 구성 요소와 비교

EPPlus를 사용하여 Excel 파일을 C#으로 데이터 테이블로 읽기 (IronXL 튜토리얼)

C#에서 DataTable에 Excel 데이터를 읽어 올 수 있는 Excel 라이브러리를 찾고 있습니까?

C#에서 DataTable에 Excel 파일을 읽는 것은 데이터 분석 및 보고, 데이터베이스로의 데이터 가져오기, 데이터 마이그레이션, 데이터 유효성 검사 및 정리, 다른 시스템과의 통합, 자동화 및 일괄 처리 등 다양한 산업 및 도메인에서 다양한 실용적인 응용 프로그램을 가지고 있습니다.

이 기사에서는 Excel 데이터를 읽고 Excel 파일을 DataTable에 읽어 올 수 있는 두 가지 다른 .NET Core용 Excel 라이브러리를 C#에서 논의하고 비교할 것입니다. 라이브러리는 다음과 같습니다

  1. EPPlus
  2. IronXL

1. EPPlus 라이브러리

EPPlus는 C#에서 Excel 파일을 생성 및 조작하기 위한 강력한 오픈 소스 라이브러리입니다. 이 라이브러리는 개발자가 Excel 스프레드시트를 프로그래밍 방식으로 생성, 읽기 및 수정할 수 있는 간단하고 직관적인 API를 제공하며, 서버나 클라이언트 장비에 Microsoft Office 또는 Excel 설치가 필요하지 않습니다. EPPlus를 사용하면 워크시트를 쉽게 생성하고, 데이터를 추가하며, 서식을 적용하고, 차트를 생성하며 Excel 파일에서 기타 작업을 수행할 수 있습니다. 이 라이브러리는 이전 .xls 형식과 최신 .xlsx 형식을 모두 지원하며, 효율적인 성능과 메모리 관리를 제공합니다. 동적 보고서를 생성하거나 데이터 가져오기/내보내기 또는 Excel 관련 작업을 자동화해야 할 때, EPPlus는 C# 애플리케이션에서 Excel 파일 처리를 단순화하고 포괄적인 기능 세트를 제공합니다.

2. IronXL

IronXL은 개발자가 .NET 애플리케이션 내에서 Excel 파일을 쉽게 읽고, 쓰며, 조작할 수 있는 강력하고 다재다능한 라이브러리입니다. 직관적이고 종합적인 API로 IronXL은 복잡한 스프레드시트 작업 과정을 단순화하여 개발자가 데이터를 원활하게 추출하고, 계산을 수행하며, 차트를 생성하고, 보고서를 쉽게 작성할 수 있게 합니다. 데이터 가져오기/내보내기 작업을 자동화하거나 데이터 분석을 수행하거나 동적 Excel 템플릿을 생성할 때, IronXL은 개발자의 소중한 시간과 노력을 아끼고, Excel 데이터 처리의 정확성과 신뢰성을 보장하는 강력한 솔루션을 제공 합니다. 매끄러운 통합, 광범위한 문서 및 다양한 기능을 갖춘 IronXL은 .NET Framework에서 Excel 파일 조작과 관련된 문제를 해결하고자 하는 개발자들에게 신뢰할 수 있고 효율적인 도구로 자리 잡고 있습니다.

3. EPPlus 라이브러리 설치하기

C# 프로젝트에 EPPlus 라이브러리를 설치하려면 먼저 Visual Studio에서 새로운 콘솔 기반 프로젝트를 생성해야 합니다. 그 후, NuGet 패키지 관리자를 사용하여 쉽게 설치할 수 있습니다.

새 프로젝트를 생성한 후, 도구로 가서 NuGet 패키지 관리자 위로 마우스를 이동한 후 '솔루션에 대한 NuGet 패키지 관리'를 선택합니다.

새 창이 나타납니다. 이 새로운 창에서 '탐색' 옵션으로 가서 'EPPlus'를 검색합니다. 패키지 목록이 나타나면 최신 안정 버전을 선택해야 합니다. 그런 다음 설치를 위해 오른쪽의 '설치' 버튼을 클릭합니다.

이와 같이 EPPlus가 프로젝트에 추가될 것입니다.

4. IronXL 설치하기

IronXL을 설치하는 방법은 여러 가지가 있지만, 이 섹션에서는 NuGet 패키지 관리자를 사용하여 IronXL을 설치하는 방법에 대해서만 논의하겠습니다.

섹션 3과 마찬가지로 새로운 프로젝트를 생성하고 '도구'로 가서 솔루션에 대해 NuGet 패키지 관리자를 엽니다.

새 창에서 검색 창에 'IronXL'이라는 키워드를 입력합니다. 목록이 나타나면 설치하려는 IronXL 패키지를 선택할 수 있습니다. 그런 다음 '설치' 버튼을 클릭하여 프로젝트에 IronXL을 설치합니다.

이제 IronXL을 사용할 준비가 되었습니다.

5. EPPlus 라이브러리를 사용한 Excel 파일 및 데이터를 DataTable로 읽기

이 섹션에서는 C# EPPlus 패키지 Excel 라이브러리를 사용하여 DataTable로 Excel을 읽는 코드를 살펴보겠습니다.

DataTable로 읽기 위해 샘플 Excel 파일이 필요합니다. 이를 위해 샘플 Excel 파일을 생성할 것입니다.

아래는 Excel 파일을 DataTable로 읽는 코드입니다.

using OfficeOpenXml;
using System;
using System.Data;
using System.IO;

class Program
{
    static void Main(string[] args)
    {
        var path = @"sample.xlsx"; // Specify the path to your Excel file
        var data = ExcelDataToDataTable(path, "Table");

        // Iterate through each row in the DataTable and print its contents
        foreach (DataRow row in data.Rows)
        {
            foreach (var wsrow in row.ItemArray)
            {
                Console.Write(wsrow + " ");
            }
            Console.WriteLine();
        }
    }

    /// <summary>
    /// Converts Excel sheet data to a DataTable.
    /// </summary>
    /// <param name="filePath">The path to the Excel file.</param>
    /// <param name="sheetName">The name of the worksheet to read from.</param>
    /// <param name="hasHeader">Indicates whether the Excel sheet has a header row.</param>
    /// <returns>DataTable containing Excel data.</returns>
    public static DataTable ExcelDataToDataTable(string filePath, string sheetName, bool hasHeader = true)
    {
        DataTable dt = new DataTable();
        var fi = new FileInfo(filePath);

        // Check if the file exists
        if (!fi.Exists)
            throw new Exception("File " + filePath + " does not exist.");

        // Set the license context for EPPlus
        ExcelPackage.LicenseContext = LicenseContext.NonCommercial;

        // Load the Excel file into an EPPlus ExcelPackage
        using (var xlPackage = new ExcelPackage(fi))
        {
            // Get the specified worksheet from the workbook
            var worksheet = xlPackage.Workbook.Worksheets[sheetName];

            // Convert the worksheet to a DataTable, optionally using the first row as column names
            dt = worksheet.Cells[1, 1, worksheet.Dimension.End.Row, worksheet.Dimension.End.Column].ToDataTable(c =>
            {
                c.FirstRowIsColumnNames = hasHeader;
            });
        }

        return dt;
    }
}
using OfficeOpenXml;
using System;
using System.Data;
using System.IO;

class Program
{
    static void Main(string[] args)
    {
        var path = @"sample.xlsx"; // Specify the path to your Excel file
        var data = ExcelDataToDataTable(path, "Table");

        // Iterate through each row in the DataTable and print its contents
        foreach (DataRow row in data.Rows)
        {
            foreach (var wsrow in row.ItemArray)
            {
                Console.Write(wsrow + " ");
            }
            Console.WriteLine();
        }
    }

    /// <summary>
    /// Converts Excel sheet data to a DataTable.
    /// </summary>
    /// <param name="filePath">The path to the Excel file.</param>
    /// <param name="sheetName">The name of the worksheet to read from.</param>
    /// <param name="hasHeader">Indicates whether the Excel sheet has a header row.</param>
    /// <returns>DataTable containing Excel data.</returns>
    public static DataTable ExcelDataToDataTable(string filePath, string sheetName, bool hasHeader = true)
    {
        DataTable dt = new DataTable();
        var fi = new FileInfo(filePath);

        // Check if the file exists
        if (!fi.Exists)
            throw new Exception("File " + filePath + " does not exist.");

        // Set the license context for EPPlus
        ExcelPackage.LicenseContext = LicenseContext.NonCommercial;

        // Load the Excel file into an EPPlus ExcelPackage
        using (var xlPackage = new ExcelPackage(fi))
        {
            // Get the specified worksheet from the workbook
            var worksheet = xlPackage.Workbook.Worksheets[sheetName];

            // Convert the worksheet to a DataTable, optionally using the first row as column names
            dt = worksheet.Cells[1, 1, worksheet.Dimension.End.Row, worksheet.Dimension.End.Column].ToDataTable(c =>
            {
                c.FirstRowIsColumnNames = hasHeader;
            });
        }

        return dt;
    }
}
$vbLabelText   $csharpLabel

위 코드는 파일 경로와 시트 이름과 같은 입력 매개변수를 받아 DataTable를 반환하는 메서드를 정의합니다. 또한 DataTable의 각 행을 반복하면서 데이터를 출력합니다.

5.1. 출력

출력은 콘솔에 출력된 Excel 파일의 내용이 될 것입니다.

6. IronXL을 사용한 DataTable로 Excel 파일 읽기

IronXL를 사용하면 Excel 시트를 변환하고 DataTable로 읽는 것이 몇 줄의 코드로 매우 쉽습니다. 또한 이전 Excel 파일을 입력으로 사용할 것입니다.

다음 코드 예제는 위 코드와 동일한 기능을 수행하지만 IronXL을 사용합니다.

using IronXL;
using System;
using System.Data;

class Program
{
    static void Main(string[] args)
    {
        // Load the Excel file into an IronXL WorkBook
        WorkBook workBook = WorkBook.Load("sample.xlsx");

        // Get the default worksheet from the workbook
        WorkSheet workSheet = workBook.DefaultWorkSheet;

        // Convert the worksheet to a DataTable, specifying that the first row contains column names
        DataTable table = workSheet.ToDataTable(true);

        // Iterate through each row in the DataTable and print its contents
        foreach (DataRow row in table.Rows)
        {
            foreach (var cell in row.ItemArray)
            {
                Console.Write(cell + " ");
            }
            Console.WriteLine();
        }
    }
}
using IronXL;
using System;
using System.Data;

class Program
{
    static void Main(string[] args)
    {
        // Load the Excel file into an IronXL WorkBook
        WorkBook workBook = WorkBook.Load("sample.xlsx");

        // Get the default worksheet from the workbook
        WorkSheet workSheet = workBook.DefaultWorkSheet;

        // Convert the worksheet to a DataTable, specifying that the first row contains column names
        DataTable table = workSheet.ToDataTable(true);

        // Iterate through each row in the DataTable and print its contents
        foreach (DataRow row in table.Rows)
        {
            foreach (var cell in row.ItemArray)
            {
                Console.Write(cell + " ");
            }
            Console.WriteLine();
        }
    }
}
$vbLabelText   $csharpLabel

위 코드 예제에서는 단순히 Excel 파일을 로드하고 workSheet.ToDataTable(true) 메서드를 사용하여 DataTable로 변환하고 있습니다.

6.1 출력

출력은 콘솔에 출력된 Excel 파일의 내용이 될 것입니다.

7. 결론

결론적으로, C#에서 Excel 파일을 읽고 DataTable로 변환하는 데에는 EPPlus와 IronXL 둘 다 강력한 기능을 제공하며 프로세스를 단순화하는 우수한 라이브러리입니다.

EPPlus는 Excel 스프레드시트를 프로그래밍 방식으로 생성, 읽기 및 수정할 수 있는 간단한 API를 제공하는 오픈 소스 라이브러리입니다. 이 라이브러리는 .xls 및 .xlsx 형식을 모두 지원하며 효율적인 성능과 메모리 관리를 제공합니다.

반면에, IronXL은 .NET 애플리케이션에서 Excel 파일을 손쉽게 작업할 수 있게 하는 다재다능한 라이브러리입니다. 데이터 추출, 계산 수행, 차트 생성 및 보고서 작성에 대한 직관적인 API와 포괄적인 기능을 제공합니다. IronXL은 데이터 가져오기/내보내기, 데이터 분석 및 동적 템플릿 생성과 같은 복잡한 Excel 파일 조작 작업을 단순화합니다.

IronXL와 EPPlus의 코드 예제를 비교할 때, EPPlus 코드가 상당히 길고 복잡하며 읽기 어렵다는 것을 알 수 있습니다. 반면에, IronXL 코드는 매우 간단하고 읽기 쉽습니다. IronXL은 기본 워크시트를 사용하지만, EPPlus에서는 워크시트의 이름을 지정해야 합니다; 그렇지 않으면 오류가 발생합니다.

요약하자면, Excel 파일을 조작하고 DataTable로 읽는 데에는 EPPlus보다 IronXL을 추천합니다. 또한 IronXL은 EPPlus보다 더 많은 기능을 제공하여 간단한 코드로 Excel 파일을 처리할 수 있습니다. IronXL에 대한 더 많은 튜토리얼은 다음 링크를 방문해주세요.

참고해 주세요EPPlus는 해당 소유자의 등록 상표입니다. 본 사이트는 EPPlus와 관련이 없으며, EPPlus의 인증을 받지 않았고, 후원받지 않았습니다. 모든 제품명, 로고 및 브랜드는 해당 소유자의 자산입니다. 비교는 정보 제공 목적으로만 사용되며, 작성 시점에 공개적으로 이용 가능한 정보를 반영합니다.

자주 묻는 질문

C#에서 Excel 데이터를 DataTable로 읽어들이는 방법은 무엇인가요?

IronXL 사용하여 Excel 통합 문서를 WorkBook.Load() 로 불러오고, 워크시트에 접근한 다음, ToDataTable() 사용하여 데이터를 변환하면 Excel 데이터를 DataTable로 읽어올 수 있습니다.

IronXL 사용하여 Excel 파일을 조작할 때의 장점은 무엇입니까?

IronXL 엑셀 파일 조작을 간소화하는 간단하고 직관적인 API를 제공합니다. 데이터 추출, 계산, 차트 생성, 보고서 생성 등의 기능을 포함하고 있어 개발자에게 포괄적인 솔루션을 제공합니다.

IronXL .xls 및 .xlsx 파일 형식을 지원합니까?

네, IronXL .xls 및 .xlsx 파일 형식을 모두 지원하므로 다양한 유형의 Excel 파일을 유연하게 사용할 수 있습니다.

Microsoft Office가 설치되어 있지 않아도 IronXL 사용할 수 있나요?

네, IronXL 컴퓨터에 Microsoft Office나 Excel이 설치되어 있지 않아도 Excel 파일을 조작할 수 있습니다.

.NET 프로젝트에 IronXL을 설치하는 방법은 무엇인가요?

IronXL 설치하려면 .NET 프로젝트의 NuGet 패키지 관리자를 열고 ' IronXL'을 검색하여 패키지를 설치하세요. 이렇게 하면 IronXL 프로젝트에 추가되어 해당 기능을 사용할 수 있게 됩니다.

Excel 파일을 DataTable로 읽어들일 때 흔히 발생하는 문제점은 무엇이며, 이러한 문제점을 해결하는 방법은 무엇입니까?

흔히 발생하는 문제로는 잘못된 파일 경로, 지원되지 않는 형식 또는 잘못된 형식의 데이터가 있습니다. 파일 경로가 올바르고 형식이 지원되는지, 데이터가 정확한지 확인하십시오. IronXL 이러한 문제를 해결하는 데 도움이 되는 명확한 오류 메시지를 제공합니다.

IronXL Excel 파일을 DataTable로 읽어들이는 데 있어 EPPlus와 비교했을 때 어떤 차이가 있습니까?

IronXL 사용 편의성과 포괄적인 기능으로 유명하며, EPPlus 또한 효과적이지만 구현이 더 복잡할 수 있습니다. IronXL 개발자에게 더욱 직관적인 API를 제공합니다.

IronXL은 대용량 Excel 파일에 적합한가요?

네, IronXL 대용량 Excel 파일을 효율적으로 처리하도록 설계되었으며, 파일 조작 중 성능과 메모리 사용량을 최적화하는 기능을 제공합니다.

IronXL 데이터 분석 및 보고에 사용할 수 있습니까?

네, IronXL 데이터 분석 및 보고에 매우 적합하며, 데이터 추출 및 조작, 차트 생성, 보고서 생성 등을 위한 강력한 기능을 제공합니다.

IronXL 의 주요 기능 중 개발자에게 도움이 되는 기능은 무엇인가요?

IronXL 의 주요 기능으로는 원활한 데이터 추출, 강력한 계산 기능, 간편한 차트 생성, 효율적인 보고서 생성, 그리고 다양한 Excel 파일 형식 지원 등이 있습니다.

커티스 차우
기술 문서 작성자

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

커티스는 개발 분야 외에도 사물 인터넷(IoT)에 깊은 관심을 가지고 있으며, 하드웨어와 소프트웨어를 통합하는 혁신적인 방법을 연구합니다. 여가 시간에는 게임을 즐기거나 디스코드 봇을 만들면서 기술에 대한 애정과 창의성을 결합합니다.

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me