푸터 콘텐츠로 바로가기
IRONXL 사용하여

IronXL 사용하여 Excel 파일을 DataTable로 가져오기

C# IronXL 사용하여 Excel 파일을 DataTable로 가져오기

엑셀 파일을 수동으로 구문 분석하는 것이 개발자의 하루에 가장 기쁜 일이 아니라는 것은 비밀이 아닙니다. 우리는 모두 그곳에 있었습니다. 레거시 OLEDB 연결 문자열과 씨름하거나 구조화되지 않은 스프레드시트 데이터를 .NET 애플리케이션이 실제로 이해하는 무언가로 매핑하려고 시도했습니다.

C#의 DataTable은 위대한 평등자입니다. 이는 LINQ 쿼리, DataGrid 바인딩, 또는 SQL 데이터베이스로의 신속한 여정을 위한 친숙한 구조로 작은 액트를 완성하는 완벽한 다리 역할을 합니다.

IronXL은 이 과정을 어렵지 않게 만듭니다. 복잡한 설정 대신 단일 직관적인 ToDataTable 메서드를 사용하여 변환을 처리합니다. 보고 도구를 구축하거나 데이터 마이그레이션 스크립트를 작성 중이든, 엑셀 데이터를 쉽게 가져오는 방법이 있습니다.

함께 따라가길 원하십니까? IronXL 무료 체험판을 사용하여 스스로 이 강력한 라이브러리를 시도해보세요.

How Can You Import an Excel File into a DataTable in C#?

C#에서 Excel 파일을 DataTable로 가져오기 위해 WorkBook.Load를 사용하여 워크북을 로드하고, 대상 워크시트를 액세스한 후 ToDataTable 메서드를 호출합니다. 이 접근법은 XLSX 파일, XLS, XLSM 및 CSV 형식과 함께 작동합니다. 필요한 클래스를 액세스할 수 있도록 다음 네임스페이스를 참조하세요.

NuGet 패키지 관리자를 통해 Visual Studio에서 다음 명령으로 IronXL을 설치하세요.

Install-Package IronXl.Excel

그런 다음 이 간결한 코드 스니펫을 사용하여 데이터를 이동하세요:

using IronXL;
using System;
using System.Data;
class Program
{
    static void Main(string[] args)
    {
        // Load the Excel file from the specified path
        string filePath = "sales-data.xlsx";
        WorkBook workbook = WorkBook.Load(filePath);
        // Access the first worksheet in the workbook
        WorkSheet worksheet = workbook.DefaultWorkSheet;
        // Convert worksheet to DataTable with first row as column headers
        DataTable dt = worksheet.ToDataTable(true);
        // Display the imported data
        foreach (DataRow row in dt.Rows)
        {
            Console.WriteLine(string.Join(" | ", row.ItemArray));
        }
    }
}
using IronXL;
using System;
using System.Data;
class Program
{
    static void Main(string[] args)
    {
        // Load the Excel file from the specified path
        string filePath = "sales-data.xlsx";
        WorkBook workbook = WorkBook.Load(filePath);
        // Access the first worksheet in the workbook
        WorkSheet worksheet = workbook.DefaultWorkSheet;
        // Convert worksheet to DataTable with first row as column headers
        DataTable dt = worksheet.ToDataTable(true);
        // Display the imported data
        foreach (DataRow row in dt.Rows)
        {
            Console.WriteLine(string.Join(" | ", row.ItemArray));
        }
    }
}
$vbLabelText   $csharpLabel

산출

IronXL을 사용하여 Excel 파일을 DataTable로 가져오기: 이미지 1 - Excel 파일이 DataTable로 가져옴

WorkBook.Load 메소드는 string 형태의 filePath 위치에서 Excel 파일을 읽고 모든 Excel 시트 데이터를 포함하는 워크북 객체를 생성합니다. ToDataTable(true) 매개변수는 첫 번째 행에 컬럼 헤더가 포함되어 있음을 나타내며, 이는 자동으로 데이터 테이블의 컬럼 이름으로 사용됩니다.

Excel 파일 데이터를 DataTable로 읽기 위한 최상의 방법은 무엇인가요?

Excel 파일 콘텐츠를 효율적으로 읽으려면 헤더 행과 원시 데이터 시나리오를 모두 다루어야 합니다. IronXL의 ToDataTable 메소드는 첫 번째 행을 컬럼 이름으로 처리할지 데이터를 처리할지를 결정하는 불리언 매개변수를 수용합니다. 확장 속성을 처리하거나 복잡한 셀 유형을 변환하는 데 추가 구성이 필요할 수 있지만 기본 메소드는 대부분의 케이스를 견고하게 처리합니다.

using IronXL;
using System.Data;
// Load workbook from file path
string filePath = @"C:\Data\inventory.xlsx";
WorkBook workbook = WorkBook.Load(filePath);
WorkSheet worksheet = workbook.WorkSheets[0];
// First row as headers (true) or as data (false)
DataTable dataTableWithHeaders = worksheet.ToDataTable(true);
DataTable dataTableWithoutHeaders = worksheet.ToDataTable(false);
// Process each row in the DataTable
foreach (DataRow row in dataTableWithHeaders.Rows)
{
    for (int i = 0; i < dataTableWithHeaders.Columns.Count; i++)
    {
        object value = row[i];
        Console.Write($"{value}\t");
    }
    Console.WriteLine();
}
using IronXL;
using System.Data;
// Load workbook from file path
string filePath = @"C:\Data\inventory.xlsx";
WorkBook workbook = WorkBook.Load(filePath);
WorkSheet worksheet = workbook.WorkSheets[0];
// First row as headers (true) or as data (false)
DataTable dataTableWithHeaders = worksheet.ToDataTable(true);
DataTable dataTableWithoutHeaders = worksheet.ToDataTable(false);
// Process each row in the DataTable
foreach (DataRow row in dataTableWithHeaders.Rows)
{
    for (int i = 0; i < dataTableWithHeaders.Columns.Count; i++)
    {
        object value = row[i];
        Console.Write($"{value}\t");
    }
    Console.WriteLine();
}
$vbLabelText   $csharpLabel

산출

IronXL을 사용하여 Excel 파일을 DataTable로 가져오기: 이미지 2 - Excel 파일 가져오기 및 읽기의 출력

이러한 유연성 덕분에 IronXL은 Excel 스프레드시트 파일을 구조에 관계없이 처리하기에 이상적입니다. EPPlus 패키지 또는 새로운 OleDbDataAdapter 인스턴스를 필요로 하는 전통적인 방법과 달리, IronXL은 단일 메소드 호출로 변환을 처리합니다. 이 라이브러리는 Microsoft Excel 설치 없이 .NET Core, .NET Framework 및 크로스 플랫폼 배포를 지원합니다.

여러 Excel 워크시트를 DataSet으로 변환하는 방법은 무엇인가요?

Excel 워크북에 여러 시트가 포함된 경우, DataSet으로 변환하면 각 Excel 워크시트가 컬렉션 내에서 별도의 DataTable로 유지됩니다. 이 접근법은 보고서 애플리케이션 및 다중 시트 데이터 처리에 필수적입니다.

using IronXL;
using System;
using System.Data;
// Load multi-sheet workbook
WorkBook workbook = WorkBook.Load("quarterly-reports.xlsx");
// Convert entire workbook to DataSet (each sheet becomes a DataTable)
DataSet dataset = workbook.ToDataSet();
// Iterate through all tables in the DataSet
foreach (DataTable table in dataset.Tables)
{
    Console.WriteLine($"Sheet: {table.TableName}");
    Console.WriteLine($"Rows: {table.Rows.Count}, Columns: {table.Columns.Count}");
    foreach (DataRow row in table.Rows)
    {
        Console.WriteLine(string.Join(", ", row.ItemArray));
    }
}
using IronXL;
using System;
using System.Data;
// Load multi-sheet workbook
WorkBook workbook = WorkBook.Load("quarterly-reports.xlsx");
// Convert entire workbook to DataSet (each sheet becomes a DataTable)
DataSet dataset = workbook.ToDataSet();
// Iterate through all tables in the DataSet
foreach (DataTable table in dataset.Tables)
{
    Console.WriteLine($"Sheet: {table.TableName}");
    Console.WriteLine($"Rows: {table.Rows.Count}, Columns: {table.Columns.Count}");
    foreach (DataRow row in table.Rows)
    {
        Console.WriteLine(string.Join(", ", row.ItemArray));
    }
}
$vbLabelText   $csharpLabel

산출

IronXL을 사용하여 Excel 파일을 DataTable로 가져오기: 이미지 3 - 다중 시트 Excel 파일을 DataSet으로 가져오는 출력

ToDataSet 메소드는 각 워크시트에 대한 DataTable 객체를 포함하는 새로운 DataSet을 생성합니다. 각 테이블의 TableName 속성은 원래 Excel 시트 이름을 반영하여 처리 중 특정 데이터를 쉽게 참조할 수 있습니다.

Excel에서 데이터를 데이터베이스로 가져오는 방법은 무엇인가요?

일반적인 워크플로우에는 Excel 파일 데이터를 읽고 이를 데이터베이스 시스템에 삽입하는 것이 포함됩니다. DataTable 구조는 데이터베이스 작업을 위해 ADO.NET과 매끄럽게 통합됩니다.

using IronXL;
using System.Data;
using System.Data.SqlClient;
string filePath = @"C:\imports\customer-data.xlsx";
WorkBook workbook = WorkBook.Load(filePath);
WorkSheet worksheet = workbook.DefaultWorkSheet;
// Convert Excel data to DataTable
DataTable dt = worksheet.ToDataTable(true);
// Validate data before database insert
if (dt == null || dt.Rows.Count == 0)
{
    Console.WriteLine("No data to import");
    return;
}
// Insert into database using SqlBulkCopy
string connectionString = "Server=.;Database=Sales;Trusted_Connection=True;";
using (SqlConnection connection = new SqlConnection(connectionString))
{
    connection.Open();
    using (SqlBulkCopy bulkCopy = new SqlBulkCopy(connection))
    {
        bulkCopy.DestinationTableName = "Customers";
        bulkCopy.WriteToServer(dt);
    }
}
Console.WriteLine($"Imported {dt.Rows.Count} records successfully");
using IronXL;
using System.Data;
using System.Data.SqlClient;
string filePath = @"C:\imports\customer-data.xlsx";
WorkBook workbook = WorkBook.Load(filePath);
WorkSheet worksheet = workbook.DefaultWorkSheet;
// Convert Excel data to DataTable
DataTable dt = worksheet.ToDataTable(true);
// Validate data before database insert
if (dt == null || dt.Rows.Count == 0)
{
    Console.WriteLine("No data to import");
    return;
}
// Insert into database using SqlBulkCopy
string connectionString = "Server=.;Database=Sales;Trusted_Connection=True;";
using (SqlConnection connection = new SqlConnection(connectionString))
{
    connection.Open();
    using (SqlBulkCopy bulkCopy = new SqlBulkCopy(connection))
    {
        bulkCopy.DestinationTableName = "Customers";
        bulkCopy.WriteToServer(dt);
    }
}
Console.WriteLine($"Imported {dt.Rows.Count} records successfully");
$vbLabelText   $csharpLabel

이 코드는 Excel 파일을 로드하고 이를 DataTable로 변환한 후 대량 데이터베이스 삽입을 수행하는 방법을 보여줍니다. null 체크는 가져오기 작업을 시도하기 전에 데이터 무결성을 보장합니다.

DataTable을 다시 Excel로 내보내는 방법은 무엇인가요?

IronXL은 양방향 데이터 흐름을 지원하여, 보고서 및 데이터 내보내기 시나리오를 위해 DataTable 객체에서 Excel 파일을 생성할 수 있습니다.

using IronXL;
using System.Data;
// Create sample DataTable
DataTable dt = new DataTable("Products");
dt.Columns.Add("ProductID", typeof(int));
dt.Columns.Add("Name", typeof(string));
dt.Columns.Add("Price", typeof(decimal));
dt.Rows.Add(1, "Widget", 29.99m);
dt.Rows.Add(2, "Gadget", 49.99m);
// Create new workbook and load DataTable
WorkBook workbook = WorkBook.Create();
workbook.LoadWorkSheetsFromDataSet(new DataSet { Tables = { dt } });
// Save as Excel file
workbook.SaveAs("exported-products.xlsx");
using IronXL;
using System.Data;
// Create sample DataTable
DataTable dt = new DataTable("Products");
dt.Columns.Add("ProductID", typeof(int));
dt.Columns.Add("Name", typeof(string));
dt.Columns.Add("Price", typeof(decimal));
dt.Rows.Add(1, "Widget", 29.99m);
dt.Rows.Add(2, "Gadget", 49.99m);
// Create new workbook and load DataTable
WorkBook workbook = WorkBook.Create();
workbook.LoadWorkSheetsFromDataSet(new DataSet { Tables = { dt } });
// Save as Excel file
workbook.SaveAs("exported-products.xlsx");
$vbLabelText   $csharpLabel

산출

IronXL을 사용하여 Excel 파일을 DataTable로 가져오기: 이미지 4 - DataTable이 Excel로 내보내짐

LoadWorkSheetsFromDataSet 메소드는 DataTable 객체를 포함하는 DataSet을 수용하고 해당 워크시트를 생성합니다. 문서에서 DataTable을 Excel로 내보내기에 대한 자세한 내용을 알아보세요.

결론

IronXL은 Excel-DataTable 변환의 복잡성을 간단한 메소드 호출로 변환합니다. 단일 Excel 워크시트를 가져오거나 다중 시트 워크북을 완벽한 DataSet으로 처리하든, 이 라이브러리는 XLSX 파일, 데이터 유형 변환 및 스트림 기반 로딩을 효율적으로 처리합니다.

DataTable의 유연성과 IronXL의 직관적인 API의 조합 덕분에 데이터베이스 통합, 보고 시스템 및 애플리케이션 데이터 바인딩을 위한 강력한 데이터 워크플로우가 가능해집니다. IronXL을 다운로드하여 Excel 데이터 처리를 간소화하거나 라이선스 구매를 통해 프로덕션 배포를 수행하세요.

지금 바로 IronXL으로 시작하세요.
green arrow pointer

자주 묻는 질문

C#을 사용하여 Excel 파일을 DataTable로 가져오려면 어떻게 해야 합니까?

IronXL 사용하면 Excel 파일을 C#의 DataTable로 쉽게 가져올 수 있습니다. IronXL Excel 파일을 로드하고 추가 조작을 위해 DataTable로 변환하는 간단한 API를 제공합니다.

C#에서 Excel 파일 조작을 위해 IronXL 사용하는 것의 장점은 무엇입니까?

IronXL C#에서 Excel 파일을 조작하는 강력한 솔루션을 제공합니다. Excel 데이터를 읽고, 쓰고, DataTables와 같은 다양한 형식으로 변환할 수 있습니다. 모든 주요 Excel 파일 형식을 지원하며 뛰어난 성능과 사용 편의성을 제공합니다.

IronXL .NET Core 와 호환됩니까?

네, IronXL .NET Core 와 완벽하게 호환되므로 Excel 파일 조작이 필요한 애플리케이션의 크로스 플랫폼 개발 및 배포가 가능합니다.

IronXL 사용하여 다양한 형식의 Excel 파일을 읽을 수 있습니까?

IronXL XLSX, XLS, CSV, TSV를 포함한 다양한 형식의 Excel 파일을 읽을 수 있도록 지원하여 다양한 유형의 Excel 데이터를 유연하게 처리할 수 있습니다.

IronXL Excel 파일 보안 기능을 지원합니까?

예, IronXL 암호로 보호된 Excel 파일을 지원하므로 C# 애플리케이션에서 보안된 Excel 문서를 불러와 작업할 수 있습니다.

IronXL 사용하여 Excel 파일을 DataTable로 변환하는 방법은 무엇입니까?

IronXL 사용하면 통합 문서를 불러오고 워크시트를 선택한 다음 내장된 메서드를 활용하여 워크시트 데이터를 DataTable로 내보내 Excel 파일을 DataTable로 변환할 수 있습니다.

IronXL 사용하면 어떤 유형의 애플리케이션이 이점을 얻을 수 있습니까?

IronXL 데이터 분석 도구, 보고 시스템 또는 Excel 데이터를 가져오거나 내보내거나 수정해야 하는 모든 소프트웨어와 같이 Excel 데이터 조작이 필요한 모든 응용 프로그램에 이상적입니다.

IronXL 사용하여 DataTable로 가져온 Excel 파일을 편집할 수 있습니까?

네, IronXL 사용하면 DataTable로 가져온 Excel 파일도 편집하고 업데이트할 수 있어 변경 사항을 수정하고 저장하는 데 있어 원활한 환경을 제공합니다.

IronXL 사용하려면 어느 정도의 코딩 경험이 필요합니까?

IronXL 사용 편의성을 고려하여 설계되었으며, 모든 경험 수준의 개발자가 활용할 수 있는 사용자 친화적인 API를 제공하여 초보자와 고급 사용자 모두에게 접근성을 제공합니다.

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

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

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

Iron Support Team

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