C#에서 xlsx 파일과 DataSet/DataTable 가져오기 및 내보내기 방법
IronXL은 단일 메서드 호출로 xlsx 파일을 포함한 Excel 워크북과 데이터세트를 변환합니다. 엑셀 데이터 추출 후 DataSet으로 내보내거나 반대 방향으로 가져오는 작업을 간단하게 처리하세요. - 워크북에 데이터세트를 가져오려면 LoadWorkSheetsFromDataSet() 을/를 사용하고, 워크북을 데이터세트로 내보내려면 ToDataSet() 을/를 사용하여 자동 시트-테이블 매핑을 수행합니다.
DataSet 은/는 여러 관련 테이블, 관계 및 제약 조건을 포함하는 데이터의 메모리 내 표현입니다. 데이터베이스, XML 및 기타 소스의 데이터 작업에 사용됩니다. C#에서 Excel 파일을 작업할 때, DataSet 은/는 데이터 중심 애플리케이션과 통합되는 친숙한 .NET 구조를 제공합니다.
DataTable 은/는 DataSet 내의 행과 열로 구성된 단일 테이블을 나타냅니다. IronXL은 각 Excel 워크시트를 해당하는 DataTable으로 자동 매핑하여 변환 중 열 헤더와 데이터 유형을 유지합니다.
빠른 시작: 즉시 Workbook을 System.Data.DataSet으로 내보내기
워크북을 DataSet으로 변환하는 데는 한 번의 메서드 호출이 필요합니다. 이 예제는 선택적으로 첫 행을 헤더로 인식하여 ToDataSet 을/를 사용하여 전체 워크북(각 시트를 DataTable으로)을 내보냅니다.
- DataSet으로 가져오기 및 내보내기를 위한 C# 라이브러리를 다운로드하세요
- Prepare the `DataSet` to import into a spreadsheet object
- Use the `LoadWorkSheetsFromDataSet` method to import the `DataSet` into the workbook
- Use the `ToDataSet` method to export the workbook as a `DataSet`
- 변환 결과를 확인하세요
데이터 세트를 워크북에 불러오는 방법?
정적 LoadWorkSheetsFromDataSet 메서드를 사용하여 DataSet을/를 워크북으로 가져옵니다. 이 방법은 DataSet 및 Workbook 객체가 모두 필요합니다. 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);
Imports IronXL
Imports System.Data
' Create dataset
Private dataSet As New DataSet()
' Create workbook
Private workBook As WorkBook = WorkBook.Create()
' Load DataSet to workBook
WorkBook.LoadWorkSheetsFromDataSet(dataSet, workBook)
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");
Imports IronXL
Imports System.Data
' Create a DataSet with multiple tables
Dim salesData As New DataSet("CompanySales")
' Create and populate a products table
Dim productsTable As New DataTable("Products")
productsTable.Columns.Add("ProductID", GetType(Integer))
productsTable.Columns.Add("ProductName", GetType(String))
productsTable.Columns.Add("Price", GetType(Decimal))
' Add sample data
productsTable.Rows.Add(1, "Laptop", 999.99D)
productsTable.Rows.Add(2, "Mouse", 19.99D)
productsTable.Rows.Add(3, "Keyboard", 49.99D)
' Create and populate a sales table
Dim salesTable As New DataTable("Sales")
salesTable.Columns.Add("SaleID", GetType(Integer))
salesTable.Columns.Add("ProductID", GetType(Integer))
salesTable.Columns.Add("Quantity", GetType(Integer))
salesTable.Columns.Add("Date", GetType(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
Dim workBook As WorkBook = WorkBook.Create()
WorkBook.LoadWorkSheetsFromDataSet(salesData, workBook)
' Save the workbook with all imported data
workBook.SaveAs("SalesReport.xlsx")
이 방법은 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
// 이 코드 조각은 사용할 수 없습니다!
' 이 코드 조각은 사용할 수 없습니다!
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
Imports IronXL
Imports System
Imports System.Data
' Load an existing Excel file
Dim workBook As WorkBook = WorkBook.Load("FinancialData.xlsx")
' Export to DataSet with column headers from first row
Dim financialDataSet As DataSet = workBook.ToDataSet(useFirstRowAsColumnNames:=True)
' Process each DataTable in the DataSet
For Each table As DataTable In financialDataSet.Tables
Console.WriteLine($"Processing table: {table.TableName}")
Console.WriteLine($"Columns: {table.Columns.Count}, Rows: {table.Rows.Count}")
' Iterate through columns
For Each column As DataColumn In table.Columns
Console.WriteLine($" Column: {column.ColumnName} ({column.DataType})")
Next
' Process first 5 rows as example
Dim rowCount As Integer = 0
For Each row As DataRow In table.Rows
If rowCount >= 5 Then Exit For
rowCount += 1
' Access data by column name
For Each col As DataColumn In table.Columns
Console.WriteLine($" {col.ColumnName}: {row(col)}")
Next
Next
Next
' You can also export specific worksheets as DataTables
Dim specificSheet As WorkSheet = workBook.WorkSheets("Q1Sales")
Dim q1Data As DataTable = specificSheet.ToDataTable(useFirstRowAsColumnNames:=True)
' Use the DataTable with other .NET components
' For example, bind to a DataGridView or save to database
내보낸 DataSet은/는 Excel에서 정의된 관계 및 제약 조건을 유지하며, Excel Interop 종속성 없이 복잡한 Excel 데이터 구조를 작업하기에 적합합니다.
추가 데이터 세트/데이터 테이블 기능
IronXL은 DataSet 및 DataTable 작업 시 고급 기능을 제공합니다:
데이터 유형 처리
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); 이 코드는 시트와 테이블을 자동으로 매핑하여 전체 통합 문서를 변환합니다.

