
oledb 없이 C#에서 Excel 파일을 DataTable로 변환하는 방법
Microsoft Excel은 Microsoft에서 만든 강력한 스프레드시트 프로그램입니다. 데이터 조직, 분석 및 시각화를 위한 널리 사용되는 도구입니다. Microsoft의 Office Suite의 일부입니다. 다양한 기능 덕분에 Excel은 전문가, 개인, 조직 및 대학에서 사용할 수 있는 다재다능한 도구입니다.
Excel은 금융, 회계, 비즈니스 분석, 데이터 분석, 연구, 교육 등 다양한 분야에서 널리 사용됩니다. 다양성과 광범위한 기능 세트 덕분에 개인 및 전문적인 상황에서 데이터를 구성, 평가 및 제시하는 최고의 도구입니다. 이 문서에서는 OLEDB 연결 없이 C#에서 Excel을 DataTable로 변환할 것입니다.
C#에서 OLEDB 없이 Excel을 DataTable로 변환하는 방법
- 새 Visual Studio 프로젝트를 만듭니다.
- 필요한 라이브러리를 설치합니다.
- Excel 파일을 객체에 로드합니다.
- 특정 메서드를 사용하여 Excel 시트 데이터를 DataTable로 변환합니다.
- 필요한 대로 DataTable을 사용합니다.
IronXL 라이브러리
.NET 프로그램에서 Excel 파일을 처리하기 위한 Microsoft Interop의 대안은 IronXL입니다. Microsoft Interop은 Excel과 연결하기 위해 Interop 어셈블리를 사용하는 것을 필수로 요구하는 반면, IronXL은 .NET 환경에서 Excel 파일을 프로그래밍 방식으로 조작하는 더 간단하고, 효율적이며 강력한 방법을 제공합니다.
다음은 IronXL을 사용하는 몇 가지 장점입니다:
- 성능 및 리소스 경제성: IronXL은 컴퓨터에 Excel 프로그램이 설치되어 있지 않아도 되어 성능 및 리소스 효율성 측면에서 Microsoft Interop을 능가합니다.
- 가독성 및 단순성: IronXL은 더 단순한 API를 제공하여 Microsoft Interop의 단점을 피하면서 Excel 파일을 읽고, 쓸 수 있습니다.
- 호환성 및 종속성: IronXL은 PC에 Microsoft Excel을 설치할 필요가 없기 때문에 다양한 Office 또는 Excel 버전과의 종속성 및 잠재적인 호환성 문제를 해결합니다.
- 플랫폼 독립성: Microsoft Interop은 특정 Microsoft Office 버전에 더 밀접하게 연결되어 있는 반면, IronXL은 더 넓은 범위의 설정 및 플랫폼에서 배포의 유연성과 간단함을 제공합니다.
IronXL은 더 빠르고, 사용이 용이하며, 추가 소프트웨어 설치가 적게 요구되기 때문에 .NET 개발자가 Excel 파일을 프로그래밍 방식으로 작업할 때 선호되는 선택일 수 있습니다. 그러나 프로젝트의 특수성, 기존 인프라 및 각 라이브러리에 대한 사용자 친숙성과 같은 요소가 그 선택에 영향을 미칠 수 있습니다.
이 솔루션 중에서 선택할 때 항상 응용 프로그램의 요구 사항을 고려하세요. IronXL 라이브러리에 대한 자세한 정보를 보려면 이 웹사이트를 방문하세요.
Visual Studio에서 새 프로젝트 생성하기
Visual Studio를 열려면 메뉴에서 File을 클릭하고 '새 프로젝트'를 선택하십시오. 그런 다음 'Windows Forms 응용 프로그램'을 선택합니다.

파일 위치를 선택한 후 적절한 텍스트 영역에 프로젝트 이름을 입력하세요. 다음으로, "Create" 버튼을 클릭하고 아래 샘플과 같이 필요한 .NET Framework를 선택하세요.

선택한 응용 프로그램 유형은 Visual Studio 프로젝트를 구성하는 방법을 결정합니다. 코드를 추가하려면 Program.cs 파일에 들어가서 콘솔, Windows 또는 웹 응용 프로그램을 사용하여 응용 프로그램을 구성하거나 실행할 수 있습니다.

다음으로 필요한 라이브러리를 추가하고 코드를 테스트합니다.
IronXL 라이브러리 설치하기
IronXL 라이브러리를 설치하려면 NuGet 패키지 관리자 콘솔을 열고 다음 명령어를 입력하세요:

또한, NuGet 패키지 관리자를 사용하여 "IronXL" 패키지를 검색할 수 있습니다. 이로써 IronXL과 관련된 NuGet 패키지 목록이 표시되며, 필요에 따라 선택할 수 있습니다.

Excel 파일을 데이터 테이블로 변환하기
다음 코드는 패키지를 설치한 후 Excel 파일을 읽고 DataTable로 변환하는 방법을 보여줍니다.
// Necessary namespaces for IronXL and application namespaces
using IronXL;
using System;
using System.Data;
using System.Windows.Forms;
namespace DataTableWindowsForm
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
/// <summary>
/// Exports data from an Excel file specified by the user through a file dialog.
/// </summary>
/// <param name="filename">The name of the file to export data from.</param>
private void ExportData(string filename)
{
string importFilePath = string.Empty;
openFileDialog1.Filter = "Excel (*.xlsx)|*.xlsx";
DialogResult result = openFileDialog1.ShowDialog();
if (result == DialogResult.OK)
{
importFilePath = openFileDialog1.FileName;
}
if (!string.IsNullOrEmpty(importFilePath))
{
// Load the Excel document
var excelDoc = WorkBook.Load(importFilePath);
// Select the first worksheet
var worksheet = excelDoc.WorkSheets[0];
// Convert worksheet to a DataTable
DataTable dt = worksheet.ToDataTable();
// Bind DataTable to the DataGridView
dataGridView1.DataSource = dt;
}
}
}
}' Necessary namespaces for IronXL and application namespaces
Imports IronXL
Imports System
Imports System.Data
Imports System.Windows.Forms
Namespace DataTableWindowsForm
Partial Public Class Form1
Inherits Form
Public Sub New()
InitializeComponent()
End Sub
''' <summary>
''' Exports data from an Excel file specified by the user through a file dialog.
''' </summary>
''' <param name="filename">The name of the file to export data from.</param>
Private Sub ExportData(ByVal filename As String)
Dim importFilePath As String = String.Empty
openFileDialog1.Filter = "Excel (*.xlsx)|*.xlsx"
Dim result As DialogResult = openFileDialog1.ShowDialog()
If result = System.Windows.Forms.DialogResult.OK Then
importFilePath = openFileDialog1.FileName
End If
If Not String.IsNullOrEmpty(importFilePath) Then
' Load the Excel document
Dim excelDoc = WorkBook.Load(importFilePath)
' Select the first worksheet
Dim worksheet = excelDoc.WorkSheets(0)
' Convert worksheet to a DataTable
Dim dt As DataTable = worksheet.ToDataTable()
' Bind DataTable to the DataGridView
dataGridView1.DataSource = dt
End If
End Sub
End Class
End Namespace위 코드에서:
- Windows Form에서는 Excel 파일을 로드하고 이를 새로운 DataTable로 변환합니다.
- 사용자에게 Excel 파일을 선택하도록 허용하는 열기 파일 대화 상자를 사용합니다.
- IronXL의
WorkBook.Load()메소드를 사용하여 Excel 파일을 Workbook 객체로 로드합니다. - 첫 번째 워크시트는 인덱스나 이름을 사용하여 선택됩니다.
ToDataTable메소드를 사용하여 워크시트 데이터를 DataTable로 변환합니다.- 채워진 DataTable은 Windows Form의 DataGridView 컨트롤의 데이터 소스로 설정됩니다.
아래에는 엑셀 파일을 애플리케이션에 로드하는 폼과 버튼이 있습니다.

사용자가 '엑셀 로드' 버튼을 클릭하면 파일을 선택할 수 있는 대화 상자가 나타납니다.

그 후 선택한 파일을 처리하여 DataTable로 변환하고 이를 DataGridView에 로드합니다.

DataTables와 IronXL 사용에 대해 더 알아보세요.
결론
IronXL은 추가적인 외부 라이브러리에 의존하지 않는 가장 일반적으로 사용되는 엑셀 애드온 중 하나입니다. Microsoft Excel을 설치할 필요 없으며, 이는 독립형 프로그램입니다. 다양한 방식으로 엑셀 파일을 조작할 수 있습니다. 반대로, Interop 라이브러리는 파일을 구문 분석하고 워드 문서를 편집하기 위해 다른 라이브러리가 필요합니다.
IronXL은 Microsoft Excel 문서를 사용하는 모든 프로그래밍 프로세스를 위한 포괄적인 솔루션을 제공합니다. 계산, 정렬, 병합 및 파일 저장과 같은 작업을 포함하여. 엑셀 데이터를 처리하고, 파일을 읽고 쓰는 것을 보다 효율적으로 합니다.
원래 IronXL의 가격은 $999이었습니다. 사용자는 1년 가입비를 지불하여 소프트웨어 업데이트와 지원을 받을 수 있습니다. IronXL은 또한 불법적인 재배포로부터 보호를 위한 요금도 제공합니다. 더 자세한 가격 정보를 확인하려면 무료 체험판 링크를 클릭하여 IronXL을 사용해 보세요. 더 자세한 정보는 Iron Software 홈페이지를 방문하여 다른 Iron Software 제품을 확인하세요.

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



