C#에서 DataSet으로 가져오기 및 내보내기 방법 | IronXL

C#에서 DataSet/DataTable 가져오기 및 내보내기 방법

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronXL은 단일 메서드 호출로 Excel 워크북과 데이터세트를 변환합니다 - 워크북에 데이터세트를 가져오려면 LoadWorkSheetsFromDataSet() 을/를 사용하고, 워크북을 데이터세트로 내보내려면 ToDataSet() 을/를 사용하여 자동 시트-테이블 매핑을 수행합니다.

DataSet 은/는 여러 관련 테이블, 관계 및 제약 조건을 포함하는 데이터의 메모리 내 표현입니다. 데이터베이스, XML 및 기타 소스의 데이터 작업에 사용됩니다. C#에서 Excel 파일을 작업할 때, DataSet 은/는 데이터 중심 애플리케이션과 통합되는 친숙한 .NET 구조를 제공합니다.

DataTable 은/는 DataSet 내의 행과 열로 구성된 단일 테이블을 나타냅니다. IronXL은 각 Excel 워크시트를 해당하는 DataTable으로 자동 매핑하여 변환 중 열 헤더와 데이터 유형을 유지합니다.

빠른 시작: 즉시 Workbook을 System.Data.DataSet으로 내보내기

워크북을 DataSet으로 변환하는 데는 한 번의 메서드 호출이 필요합니다. 이 예제는 선택적으로 첫 행을 헤더로 인식하여 ToDataSet 을/를 사용하여 전체 워크북(각 시트를 DataTable으로)을 내보냅니다.

  1. NuGet 패키지 관리자를 사용하여 https://www.nuget.org/packages/IronXl.Excel 설치하기

    PM > Install-Package IronXl.Excel
  2. 다음 코드 조각을 복사하여 실행하세요.

    DataSet ds = WorkBook.Create().ToDataSet(useFirstRowAsColumnNames: true);
  3. 실제 운영 환경에서 테스트할 수 있도록 배포하세요.

    무료 체험판으로 오늘 프로젝트에서 IronXL 사용 시작하기

    arrow pointer

데이터 세트를 워크북에 불러오는 방법?

정적 LoadWorkSheetsFromDataSet 메서드를 사용하여 DataSet을/를 워크북으로 가져옵니다. 이 방법은 DataSetWorkbook 객체가 모두 필요합니다. Create 메서드를 사용하여 먼저 워크북을 생성합니다. DataSet 객체와 workbook 객체를 메서드에 전달합니다.

:path=/static-assets/excel/content-code-examples/how-to/export-dataset-datatable-load.cs
using IronXL;
using System.Data;

// Create dataset
DataSet dataSet = new DataSet();

// Create workbook
WorkBook workBook = WorkBook.Create();

// Load DataSet to workBook
WorkBook.LoadWorkSheetsFromDataSet(dataSet, workBook);
$vbLabelText   $csharpLabel

DataSet 내의 각 DataTable은/는 별도의 워크시트가 됩니다. 테이블 이름은 워크시트 이름이 되어 데이터 구성을 유지합니다. 여러 데이터 소스를 위해 스프레드시트 생성 또는 기존 워크시트 관리와 결합하여 사용하세요.

여기에는 여러 테이블이 있는 DataSet을/를 로드하는 종합적인 예제가 있습니다:

using IronXL;
using System.Data;

// Create a DataSet with multiple tables
DataSet salesData = new DataSet("CompanySales");

// Create and populate a products table
DataTable productsTable = new DataTable("Products");
productsTable.Columns.Add("ProductID", typeof(int));
productsTable.Columns.Add("ProductName", typeof(string));
productsTable.Columns.Add("Price", typeof(decimal));

// Add sample data
productsTable.Rows.Add(1, "Laptop", 999.99m);
productsTable.Rows.Add(2, "Mouse", 19.99m);
productsTable.Rows.Add(3, "Keyboard", 49.99m);

// Create and populate a sales table
DataTable salesTable = new DataTable("Sales");
salesTable.Columns.Add("SaleID", typeof(int));
salesTable.Columns.Add("ProductID", typeof(int));
salesTable.Columns.Add("Quantity", typeof(int));
salesTable.Columns.Add("Date", typeof(DateTime));

// Add sample sales data
salesTable.Rows.Add(1, 1, 5, DateTime.Now);
salesTable.Rows.Add(2, 2, 25, DateTime.Now.AddDays(-1));
salesTable.Rows.Add(3, 3, 10, DateTime.Now.AddDays(-2));

// Add tables to DataSet
salesData.Tables.Add(productsTable);
salesData.Tables.Add(salesTable);

// Create workbook and load DataSet
WorkBook workBook = WorkBook.Create();
WorkBook.LoadWorkSheetsFromDataSet(salesData, workBook);

// Save the workbook with all imported data
workBook.SaveAs("SalesReport.xlsx");
using IronXL;
using System.Data;

// Create a DataSet with multiple tables
DataSet salesData = new DataSet("CompanySales");

// Create and populate a products table
DataTable productsTable = new DataTable("Products");
productsTable.Columns.Add("ProductID", typeof(int));
productsTable.Columns.Add("ProductName", typeof(string));
productsTable.Columns.Add("Price", typeof(decimal));

// Add sample data
productsTable.Rows.Add(1, "Laptop", 999.99m);
productsTable.Rows.Add(2, "Mouse", 19.99m);
productsTable.Rows.Add(3, "Keyboard", 49.99m);

// Create and populate a sales table
DataTable salesTable = new DataTable("Sales");
salesTable.Columns.Add("SaleID", typeof(int));
salesTable.Columns.Add("ProductID", typeof(int));
salesTable.Columns.Add("Quantity", typeof(int));
salesTable.Columns.Add("Date", typeof(DateTime));

// Add sample sales data
salesTable.Rows.Add(1, 1, 5, DateTime.Now);
salesTable.Rows.Add(2, 2, 25, DateTime.Now.AddDays(-1));
salesTable.Rows.Add(3, 3, 10, DateTime.Now.AddDays(-2));

// Add tables to DataSet
salesData.Tables.Add(productsTable);
salesData.Tables.Add(salesTable);

// Create workbook and load DataSet
WorkBook workBook = WorkBook.Create();
WorkBook.LoadWorkSheetsFromDataSet(salesData, workBook);

// Save the workbook with all imported data
workBook.SaveAs("SalesReport.xlsx");
$vbLabelText   $csharpLabel

이 방법은 SQL 데이터베이스에서 데이터를 내보내거나 여러 소스에서 데이터를 Excel 형식으로 통합할 때 효과적입니다.

기존 스프레드시트 불러오기 방법을 방문하여 다양한 파일 형식에서 스프레드시트를 가져오는 방법을 알아보세요.


데이터 세트로 워크북을 내보내는 방법?

ToDataSet 메서드는 워크북을 System.Data.DataSet으로 변환하며, 각 워크시트는 System.Data.DataTable이 됩니다. 이 메서드를 Excel 워크북에서 호출하여 DataSet 객체로 변환합니다. useFirstRowAsColumnNames 매개변수는 첫 번째 행을 열 이름으로 사용할지를 결정합니다.

:path=/static-assets/excel-content-code-examples/how-to/export-dataset-datatable-export.cs
// 이 코드 조각은 사용할 수 없습니다!
$vbLabelText   $csharpLabel

IronXL은 자동으로 데이터 유형 변환을 처리하고 데이터 세트로 내보낼 때 스프레드시트 구조를 유지합니다. SQL 데이터베이스와 Excel 데이터를 통합하거나 .NET 어플리케이션에서 데이터를 사용할 때 도움이 됩니다.

워크북 내보내기와 데이터 세트 처리를 보여주는 고급 예제:

using IronXL;
using System;
using System.Data;

// Load an existing Excel file
WorkBook workBook = WorkBook.Load("FinancialData.xlsx");

// Export to DataSet with column headers from first row
DataSet financialDataSet = workBook.ToDataSet(useFirstRowAsColumnNames: true);

// Process each DataTable in the DataSet
foreach (DataTable table in financialDataSet.Tables)
{
    Console.WriteLine($"Processing table: {table.TableName}");
    Console.WriteLine($"Columns: {table.Columns.Count}, Rows: {table.Rows.Count}");

    // Iterate through columns
    foreach (DataColumn column in table.Columns)
    {
        Console.WriteLine($"  Column: {column.ColumnName} ({column.DataType})");
    }

    // Process first 5 rows as example
    int rowCount = 0;
    foreach (DataRow row in table.Rows)
    {
        if (rowCount++ >= 5) break;

        // Access data by column name
        foreach (DataColumn col in table.Columns)
        {
            Console.WriteLine($"    {col.ColumnName}: {row[col]}");
        }
    }
}

// You can also export specific worksheets as DataTables
WorkSheet specificSheet = workBook.WorkSheets["Q1Sales"];
DataTable q1Data = specificSheet.ToDataTable(useFirstRowAsColumnNames: true);

// Use the DataTable with other .NET components
// For example, bind to a DataGridView or save to database
using IronXL;
using System;
using System.Data;

// Load an existing Excel file
WorkBook workBook = WorkBook.Load("FinancialData.xlsx");

// Export to DataSet with column headers from first row
DataSet financialDataSet = workBook.ToDataSet(useFirstRowAsColumnNames: true);

// Process each DataTable in the DataSet
foreach (DataTable table in financialDataSet.Tables)
{
    Console.WriteLine($"Processing table: {table.TableName}");
    Console.WriteLine($"Columns: {table.Columns.Count}, Rows: {table.Rows.Count}");

    // Iterate through columns
    foreach (DataColumn column in table.Columns)
    {
        Console.WriteLine($"  Column: {column.ColumnName} ({column.DataType})");
    }

    // Process first 5 rows as example
    int rowCount = 0;
    foreach (DataRow row in table.Rows)
    {
        if (rowCount++ >= 5) break;

        // Access data by column name
        foreach (DataColumn col in table.Columns)
        {
            Console.WriteLine($"    {col.ColumnName}: {row[col]}");
        }
    }
}

// You can also export specific worksheets as DataTables
WorkSheet specificSheet = workBook.WorkSheets["Q1Sales"];
DataTable q1Data = specificSheet.ToDataTable(useFirstRowAsColumnNames: true);

// Use the DataTable with other .NET components
// For example, bind to a DataGridView or save to database
$vbLabelText   $csharpLabel

내보낸 DataSet은/는 Excel에서 정의된 관계 및 제약 조건을 유지하며, Excel Interop 종속성 없이 복잡한 Excel 데이터 구조를 작업하기에 적합합니다.

추가 데이터 세트/데이터 테이블 기능

IronXL은 DataSetDataTable 작업 시 고급 기능을 제공합니다:

데이터 유형 처리

IronXL은 Excel-DataSet 변환 중에 지능적으로 데이터 유형을 매핑합니다. 숫자 셀은 적절한 숫자 유형(int, decimal, double)으로 변환되고, 날짜 셀은 DateTime 객체로 변환되며, 텍스트 셀은 string가 됩니다. 변환 전에 셀 데이터 형식을 설정하여 이 기능을 맞춤 설정하세요.

성능 최적화

IronXL은 대규모 데이터 세트를 위한 메모리 사용 및 처리 속도를 최적화합니다. 라이브러리는 데이터를 메모리에 모두 불러오는 대신 효율적으로 스트리밍합니다. 대량 데이터 처리를 위한 Enterprise 어플리케이션에 적합합니다.

다른 기능과의 통합

데이터 세트/데이터 테이블 기능은 다른 IronXL 기능과 통합됩니다:

스프레드시트 저장 또는 내보내기 방법을 방문하여 다양한 파일 형식으로 스프레드시트를 내보내는 방법을 알아보세요.

자주 묻는 질문

C#에서 Excel 통합 문서를 DataSet으로 변환하는 방법은 무엇인가요?

IronXL을 사용하면 ToDataSet() 메서드를 통해 Excel 통합 문서를 DataSet으로 변환할 수 있습니다. WorkBook.ToDataSet(useFirstRowAsColumnNames: true)를 호출하기만 하면 전체 통합 문서를 내보낼 수 있으며, 결과 DataSet에서는 각 시트가 DataTable이 됩니다.

프로그램으로 데이터셋을 엑셀 통합 문서로 가져올 수 있나요?

예, IronXL은 DataSet을 통합 문서로 가져오는 LoadWorkSheetsFromDataSet() 메서드를 제공합니다. WorkBook.Create()를 사용하여 통합 문서를 생성한 다음, DataSet과 통합 문서를 모두 이 정적 메서드에 전달하세요. 각 DataTable은 별도의 워크시트로 생성됩니다.

Excel로 가져올 때 DataTable 이름은 어떻게 되나요?

IronXL의 LoadWorkSheetsFromDataSet() 메서드를 사용하면 각 DataTable 이름이 Excel의 워크시트 이름으로 자동 변환되어 데이터 구성이 유지되고 다양한 데이터 소스를 쉽게 식별할 수 있습니다.

해당 라이브러리는 DataSet 변환 중에 열 헤더를 유지합니까?

네, IronXL은 Excel과 DataSet 간 변환 시 열 머리글과 데이터 형식을 유지합니다. useFirstRowAsColumnNames를 true로 설정하여 ToDataSet()을 사용하면 각 워크시트의 첫 번째 행이 열 머리글로 인식됩니다.

Excel과 DataSet 간 변환 시 여러 테이블은 어떻게 처리되나요?

IronXL은 Excel 워크시트를 DataSet으로 변환할 때, 그리고 그 반대로 변환할 때 각 Excel 워크시트를 해당 DataTable에 자동으로 매핑합니다. 여러 테이블이 포함된 DataSet을 가져올 경우, 각 DataTable은 통합 문서에 별도의 워크시트를 생성합니다.

Excel 파일을 DataSet으로 내보내는 데 필요한 최소한의 코드는 무엇입니까?

IronXL을 사용하여 Excel 통합 문서를 DataSet으로 내보내는 최소 코드는 단 한 줄입니다. DataSet ds = WorkBook.Create().ToDataSet(useFirstRowAsColumnNames: true); 이 코드는 시트와 테이블을 자동으로 매핑하여 전체 통합 문서를 변환합니다.

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

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

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

A PHP Error was encountered

Severity: Notice

Message: Undefined index: IronXl.Excel

Filename: helpers/counter_helper.php

Line Number: 85

Backtrace:

File: /var/www/ironpdf.com/application/helpers/counter_helper.php
Line: 85
Function: _error_handler

File: /var/www/ironpdf.com/application/views/main/sections/ready_to_started_202509.php
Line: 12
Function: getTotalDonwloadNumber

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 489
Function: view

File: /var/www/ironpdf.com/application/controllers/Products/Howto.php
Line: 31
Function: render_products_view

File: /var/www/ironpdf.com/index.php
Line: 292
Function: require_once

A PHP Error was encountered

Severity: Notice

Message: Undefined index: IronXl.Excel

Filename: helpers/counter_helper.php

Line Number: 85

Backtrace:

File: /var/www/ironpdf.com/application/helpers/counter_helper.php
Line: 85
Function: _error_handler

File: /var/www/ironpdf.com/application/views/main/sections/ready_to_started_202509.php
Line: 19
Function: getTotalDonwloadNumber

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 489
Function: view

File: /var/www/ironpdf.com/application/controllers/Products/Howto.php
Line: 31
Function: render_products_view

File: /var/www/ironpdf.com/index.php
Line: 292
Function: require_once

시작할 준비 되셨나요?
Nuget 다운로드 1,890,100 | 버전: 2026.3 방금 출시되었습니다

A PHP Error was encountered

Severity: Notice

Message: Undefined index: IronXl.Excel

Filename: helpers/counter_helper.php

Line Number: 85

Backtrace:

File: /var/www/ironpdf.com/application/helpers/counter_helper.php
Line: 85
Function: _error_handler

File: /var/www/ironpdf.com/application/views/main/sections/still_scrolling_202512.php
Line: 17
Function: getTotalDonwloadNumber

File: /var/www/ironpdf.com/application/views/products/sections/three_column_docs_page_structure.php
Line: 71
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/views/products/how-to/index.php
Line: 2
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 552
Function: view

File: /var/www/ironpdf.com/application/controllers/Products/Howto.php
Line: 31
Function: render_products_view

File: /var/www/ironpdf.com/index.php
Line: 292
Function: require_once

A PHP Error was encountered

Severity: Notice

Message: Undefined index: IronXl.Excel

Filename: helpers/counter_helper.php

Line Number: 85

Backtrace:

File: /var/www/ironpdf.com/application/helpers/counter_helper.php
Line: 85
Function: _error_handler

File: /var/www/ironpdf.com/application/views/main/sections/still_scrolling_202512.php
Line: 24
Function: getTotalDonwloadNumber

File: /var/www/ironpdf.com/application/views/products/sections/three_column_docs_page_structure.php
Line: 71
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/views/products/how-to/index.php
Line: 2
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 552
Function: view

File: /var/www/ironpdf.com/application/controllers/Products/Howto.php
Line: 31
Function: render_products_view

File: /var/www/ironpdf.com/index.php
Line: 292
Function: require_once

Still Scrolling Icon

아직도 스크롤하고 계신가요?

빠른 증거를 원하시나요? PM > Install-Package IronXl.Excel
샘플을 실행하세요 데이터가 스프레드시트로 변환되는 것을 지켜보세요.