IRONSOFTWAREHOME
IRONXL 사용하여

C#에서 DataGridView를 Excel로 내보내는 방법

Curtis Chau
Curtis Chau
Updated: 2026년 6월 28일

이 튜토리얼은 Windows Forms 애플리케이션의 DataGridView 컨트롤에서 C#의 IronXL 라이브러리를 사용하여 Excel 파일로 데이터를 내보내는 방법에 대한 종합 가이드를 제공합니다. C# 프로젝트에 Microsoft Excel 기능 통합을 원하는 초보자를 위한 원활한 경험을 만드는 데 중점을 둘 것입니다.

How to Export DataGridView to Excel in C#

  1. Visual Studio에서 C# Windows Forms 프로젝트를 만듭니다.
  2. NuGet 패키지 관리자를 사용하여 Excel 라이브러리를 설치합니다.
  3. Windows Form UI에 DataGridView와 버튼을 만듭니다.
  4. DataGridView에 데이터 소스를 연결합니다.
  5. 버튼의 클릭 이벤트 핸들러에서 데이터 내보내기 논리를 적용합니다.

IronXL 시작하기

IronXL은 .NET Framework 애플리케이션에서 엑셀 문서를 다루는 과정을 간소화하는 강력한 라이브러리입니다. 이는 대규모 엑셀 파일을 내보내고, 복잡한 데이터 소스를 처리하며, Microsoft Excel Object Library가 필요 없이 .NET 엑셀 파일 조작을 위한 포괄적인 지원을 제공합니다. 프로젝트를 설정해 봅시다.

프로젝트 설정하기

1. 새로운 Windows Forms 애플리케이션 생성

Visual Studio를 열고 새 Windows Forms 애플리케이션을 만드세요. 이것이 DataGridView 데이터를 엑셀 파일로 내보내기 위한 기능을 구현할 프로젝트의 기반이 될 것입니다.

C#에서 DataGridView를 Excel로 내보내는 방법: 그림 1 - Visual Studio에서 새로운 Windows Forms 애플리케이션 생성

2. IronXL 설치

프로젝트에 IronXL을 쉽게 추가할 수 있습니다. Visual Studio에서 'Manage NuGet Packages' 옵션으로 이동하여 IronXL을 검색하고 설치하십시오. 이 작업은 C#에서 DataGridView를 엑셀로 내보내기 위한 모든 종속성을 처리할 것입니다.

C#에서 DataGridView를 Excel로 내보내는 방법: 그림 2 - NuGet 패키지 관리자를 통해 IronXL 라이브러리 설치

3. 사용자 인터페이스 준비

폼에 DataGridView 컨트롤을 추가하십시오. 이 컨트롤은 우리가 내보내려고 하는 데이터를 보유할 것입니다. 또한, 내보내기 프로세스를 시작할 버튼을 추가하세요. '엑셀로 내보내기' 또는 비슷한 것으로 레이블을 지정할 수 있습니다.

내보내기 기능 구현

이 섹션에서는 Windows Forms 애플리케이션의 DataGridView에서 IronXL을 사용하여 엑셀 문서로 데이터를 내보낼 수 있는 기능을 프로그래밍하는 구체적인 방법을 설명합니다.

애플리케이션 빌드

첫째로, 폼에 DataGridView 컨트롤을 추가해야 합니다. 이 컨트롤은 데이터를 내보내기 전에 표시할 주요 구성 요소입니다. Visual Studio의 도구 상자에서 DataGridView를 폼으로 드래그하여 쉽게 추가할 수 있습니다. DataGridView 데이터를 Excel 파일로 내보내는 버튼도 추가할 수 있습니다.

C#에서 DataGridView를 Excel로 내보내는 방법: 그림 3 - DataGridView 데이터를 Excel 파일로 내보내는 버튼 추가

다음 단계는 데이터를 DataGridView에 로드하는 것입니다. 이 데이터는 다양한 출처에서 올 수 있으며, 예를 들어 DataTable 또는 DataSet 같은 것입니다. 시작하는 경우, 새로운 DataSet 또는 DataTable를 프로그래밍적으로 생성하여 샘플 데이터로 채워 작동 방법을 보는 것이 좋습니다. 대안으로 외부 소스에서 데이터를 가져올 수 있습니다. 여기서 중요한 것은 데이터 소스를 DataGridView에 연결하여 데이터를 그리드에 효과적으로 연결하는 것입니다. 데이터가 DataGridView에 바인딩되면 폼의 그리드에 표시됩니다.

private void BindDataToDataGridView()
{
    // Create a new DataTable.
    DataTable dataTable = new DataTable();
    // Define columns for the DataTable.
    dataTable.Columns.Add("Employee ID", typeof(int));
    dataTable.Columns.Add("Name", typeof(string));
    dataTable.Columns.Add("Department", typeof(string));
    dataTable.Columns.Add("Joining Date", typeof(DateTime));
    // Add sample data to the DataTable.
    for (int i = 1; i <= 25; i++)
    {
        dataTable.Rows.Add(i, "Employee " + i, "Department " + (i % 5 + 1), DateTime.Now.AddDays(-i * 15));
    }
    // Bind the DataTable to the DataGridView.
    dataGridView1.DataSource = dataTable;
}

버튼 클릭 이벤트 처리

사용자와의 주요 상호 작용 지점은 Windows Form 내의 버튼이 될 것입니다. 이 버튼은 클릭 시 내보내기 과정을 시작합니다. 이 상호작용을 설정하는 방법은 다음과 같습니다:

  • Windows Form에서는 DataGridView 데이터를 내보내는 데 전용 버튼이 있어야 합니다.
  • 이 버튼은 C# 코드에서 이벤트 핸들러 메서드를 가지고 있습니다. 이 메서드는 사용자가 버튼을 클릭할 때 트리거됩니다.
private void btnExport_Click(object sender, EventArgs e)
{
    // Code to export data will go here
}

DataGridView에서 데이터 내보내기

DataGridView 데이터를 내보내기 위해 먼저 IronXL 네임스페이스를 참조해야 합니다:

using IronXL;

이벤트 핸들러 내에서 첫 번째 단계는 IronXL을 사용하여 새 워크북과 워크시트를 초기화하는 것입니다. 여기가 DataGridView의 데이터가 전송되는 위치입니다.

  • WorkBook 객체는 전체 Excel 파일을 나타냅니다.
  • 워크북 내의 WorkSheet는 Excel 파일의 개별 페이지나 탭과 유사합니다.

여기서는 워크북을 생성하고 그 안에 워크시트를 추가합니다. 워크시트 이름은 'ExportedData'이지만 애플리케이션의 컨텍스트에 맞는 이름을 선택할 수 있습니다.

WorkBook workbook = WorkBook.Create();
WorkSheet worksheet = workbook.CreateWorkSheet("ExportedData");

Excel 시트 채우기

다음 단계는 DataGridView의 행과 열을 반복하여 각 셀의 데이터를 Excel 워크시트의 해당 셀에 복사하는 것입니다.

  • 외부 루프는 각 행을 진행하고, 내부 루프는 해당 행 내의 모든 열을 통과합니다.
  • DataGridView의 각 셀 값을 Excel 워크시트의 해당 셀에 할당합니다. 이는 i (행) 및 j (열) 인덱스를 사용하여 수행됩니다.
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
    for (int j = 0; j < dataGridView1.Columns.Count; j++)
    {
        // Convert row and column index to Excel cell address format
        string cellAddress = ConvertToCellAddress(i, j);
        worksheet[cellAddress].Value = dataGridView1.Rows[i].Cells[j].Value.ToString();
    }
}

행 및 열 인덱스를 Excel 셀 주소로 변환하려면 다음과 같은 도우미 메서드를 사용할 수 있습니다:

private string ConvertToCellAddress(int row, int column)
{
    // Columns in Excel are labeled as A, B, C, ..., Z, AA, AB, ..., etc.
    // The following code converts a column index to this format.
    string columnLabel = "";
    while (column >= 0)
    {
        columnLabel = (char)('A' + column % 26) + columnLabel;
        column = column / 26 - 1;
    }
    // Rows in Excel are labeled as 1, 2, 3, ..., n
    // Adding 1 because Excel is 1-based and our loop is 0-based.
    string rowLabel = (row + 1).ToString();
    return columnLabel + rowLabel;
}

Excel 파일 저장

모든 데이터 전송이 완료되면 다음 단계는 이 워크북을 Excel 파일로 저장하는 것입니다. 이 단계에서 지정된 경로에 Excel 파일이 생성됩니다.

workbook.SaveAs("DataGridViewExport.xlsx");
MessageBox.Show("Data exported successfully!", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);

오류 처리

모든 데이터 내보내기 과정에서, 예외 처리는 애플리케이션의 안정성을 보장하는 데 필수적입니다. try-catch 블록으로 내보내기 로직을 감싸면 내보내기 도중 발생하는 문제(예를 들어 파일 액세스 권한, 데이터 형식 문제 등)를 잡고 부드럽게 처리할 수 있습니다.

try
{
    // Export logic
}
catch (Exception ex)
{
    MessageBox.Show("An exception occurred: " + ex.Message);
}

산출

프로그램을 실행하면 이 인터페이스가 표시됩니다:

C#에서 DataGridView를 Excel로 내보내는 방법: 그림 4 - 이전 코드의 출력 양식

여기에서 DataGridView에 데이터가 표시되는 것을 볼 수 있습니다. 이제 내보내기 버튼을 클릭하세요. DataGridView에서 데이터를 Excel 파일로 내보낼 것입니다.

C#에서 DataGridView를 Excel로 내보내는 방법: 그림 5 - 성공적인 내보내기 메세지

여기서 메시지 상자가 나타나면 데이터가 Excel 파일로 내보내졌음을 확인할 수 있습니다. 여기에 출력 Excel 파일이 있습니다:

C#에서 DataGridView를 Excel로 내보내는 방법: 그림 6 - 이전 양식에서 내보낸 출력 Excel 파일

결론

이 가이드를 따르면 이제 C# 및 IronXL을 사용하여 DataGridView 데이터를 Excel 파일로 내보내는 기본적이지만 강력한 도구를 갖게 됩니다. 이 기능은 데이터 분석, 보고, 또는 단순히 서로 다른 형식 사이의 데이터 전송이 필요한 애플리케이션에 필수적입니다. DataGridView 컨트롤과 IronXL 라이브러리의 다양한 기능을 실험하면 더 맞춤화되고 고급화된 구현으로 이어질 수 있다는 것을 기억하세요.

IronXL은 기능을 탐색할 수 있는 무료 체험판을 제공합니다. 라이선스는 $999부터 시작하며, .NET 애플리케이션에서 Excel 파일 조작을 위한 신뢰할 수 있는 효율적인 솔루션을 찾고 있는 전문가 및 조직에 유익한 투자입니다.

당신의 여정은 여기서 끝나지 않습니다. IronXL의 더 많은 기능을 탐색하고 Windows Forms 응용 프로그램을 향상시키는 다른 방법을 계속 탐색하십시오. 즐거운 코딩 되세요!

Curtis Chau
기술 문서 작성자

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

...
더 읽어보기

관련 기사

Key in blue circle

무료 30일 체험 키를 즉시 받으세요.

Your trial license will be sent to your email address

제한 없음. 100% 무제한 이용. 신용카드 불필요.

bullet_checked신용카드나 계정 생성은 필요하지 않습니다.제한 없음. 100% 무제한 이용. 신용카드 불필요.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
무료 라이브 데모를 예약하세요
Booking Badge

전 세계 수백만 엔지니어들이 신뢰하는 제품입니다.

Iron Software의 고객 로고
부담 없는 무료 상담을 받아보세요
아래 양식을 작성하시거나 sales@ironsoftware.com으로 이메일을 보내주세요.
고객님의 정보는 항상 비밀로 유지됩니다.
전 세계 수백만 엔지니어들이 신뢰하는 제품입니다.
Iron Software의 고객 로고
지금 바로 30일 무료 체험판 키를 받으세요.
신용카드나 계정 생성은 필요하지 않습니다.