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

IronXL 사용하여 C#에서 DataGridView를 Excel로 내보내는 방법

데이터를 Excel 파일로 내보내는 것은 IronXL을 사용할 때 C# 코드 몇 줄만 필요합니다. 매트릭스를 생성하고, 그리드의 열과 행을 반복하여 각 셀 값을 워크시트에 기록한 다음, 완전히 포맷된 .xlsx 파일을 생성하기 위해 SaveAs을 호출합니다. Microsoft Office 설치는 필요 없습니다.

Excel 내보내기를 위한 Windows Forms 프로젝트를 어떻게 설정하나요?

Windows Forms는 .NET 생태계의 기본 GUI 라이브러리로, 데스크톱 애플리케이션을 구축하는 데 널리 사용됩니다. DataGridView 컨트롤은 가장 많이 사용되는 구성 요소 중 하나입니다: 이는 DataTable, 데이터베이스 쿼리 결과, 또는 메모리 내 리스트와 같은 바인딩 가능한 소스로부터 표 형식 데이터를 디스플레이하고 편집하며 관리합니다.

그리드 데이터를 Excel로 내보내는 것은 이해관계자에게 보고서를 보내거나, 감사용으로 스냅샷을 보관하거나, 하위 분석 도구에 데이터를 입력하라는 일상적인 요구를 충족시킵니다. 전통적인 접근 방식 두 가지는 Microsoft Office Interop과 서드 파티 라이브러리입니다. Interop은 응용 프로그램을 실행하는 모든 컴퓨터에 Excel의 사본을 설치해야 하고, COM 객체 생명 주기 문제를 일으키며, 서버나 클라우드 배포에서 성능이 떨어집니다. IronXL, ClosedXML, Syncfusion과 같은 라이브러리는 Office 의존성 없이 Open XML 파일 포맷에 직접 쓰기를 통해 이러한 문제를 재회피합니다.

이 가이드에서는 C#에서 .NET 10을 타겟으로 IronXL 접근 방식을 보여드리지만, IronXL은 .NET Framework 4.6.2와 모든 최신 .NET 버전을 지원합니다.

필수 조건

모든 내보내기 코드를 작성하기 전에 다음 사항을 확인하십시오:

  • Visual Studio 2022 이상
  • .NET 10 SDK 설치됨
  • DataGridView 컨트롤을 포함하는 Windows Forms 앱 프로젝트
  • IronXL 설치를 위한 NuGet 액세스

IronXL은 어떻게 설치합니까?

Visual Studio에서 패키지 관리자 콘솔을 열고 아래 명령어 중 하나를 실행합니다:

Install-Package IronXL
dotnet add package IronXL
Install-Package IronXL
dotnet add package IronXL
SHELL

또는, 솔루션 익스플로러에서 프로젝트를 마우스 오른쪽 버튼으로 클릭하여 NuGet 패키지 관리를 선택하고, IronXl.Excel을 검색한 다음, 설치를 클릭합니다.

VB .NET 2010에서 DataGridView 데이터를 IronXL을 사용하여 Excel로 내보내기: 이미지 1 - 설치

설치가 완료되면 Excel 기능을 사용하는 모든 파일의 상단에 IronXL using 지시문을 추가하세요:

using IronXL;
using System.Data;
using IronXL;
using System.Data;
$vbLabelText   $csharpLabel

IronXL은 모든 일반 스프레드시트 형식을 지원합니다: XLSX, XLS, CSV, TSV. 이 가이드는 최신 Excel 버전의 기본 형식이기 때문에 전체적으로 XLSX를 사용합니다.

샘플 데이터로 DataGridView를 어떻게 채우나요?

이 워크스루에서는, 양식에 DataGridView라는 이름의 DataGridView1btnExport라는 이름의 버튼이 포함되어 있습니다. 양식의 Load 이벤트에서 DataTable에 저장된 직원 기록으로 그리드가 채워집니다:

void Form1_Load(object sender, EventArgs e)
{
    var dt = new DataTable();

    // Define columns with the appropriate .NET type
    dt.Columns.Add("EmployeeID", typeof(int));
    dt.Columns.Add("Name", typeof(string));
    dt.Columns.Add("Department", typeof(string));
    dt.Columns.Add("Salary", typeof(decimal));

    // Add sample rows
    dt.Rows.Add(101, "Sarah Johnson", "Engineering", 85000m);
    dt.Rows.Add(102, "Michael Chen", "Marketing", 72000m);
    dt.Rows.Add(103, "Emily Davis", "Finance", 91000m);
    dt.Rows.Add(104, "James Wilson", "Engineering", 78000m);

    DataGridView1.DataSource = dt;
}
void Form1_Load(object sender, EventArgs e)
{
    var dt = new DataTable();

    // Define columns with the appropriate .NET type
    dt.Columns.Add("EmployeeID", typeof(int));
    dt.Columns.Add("Name", typeof(string));
    dt.Columns.Add("Department", typeof(string));
    dt.Columns.Add("Salary", typeof(decimal));

    // Add sample rows
    dt.Rows.Add(101, "Sarah Johnson", "Engineering", 85000m);
    dt.Rows.Add(102, "Michael Chen", "Marketing", 72000m);
    dt.Rows.Add(103, "Emily Davis", "Finance", 91000m);
    dt.Rows.Add(104, "James Wilson", "Engineering", 78000m);

    DataGridView1.DataSource = dt;
}
$vbLabelText   $csharpLabel

각 열은 특정 .NET 타입으로 정의되어 이후에 숫자 비교 및 서식이 올바르게 작동하도록 합니다. DataSource 속성은 DataTableDataGridView에 직접 바인딩하며, 양식이 열릴 때 그리드는 자동으로 모든 행을 렌더링합니다. 실제 제작 환경에서는 이 데이터가 일반적으로 데이터베이스 쿼리, ORM 결과 세트 또는 REST API 응답에서 제공되며 하드코딩된 값은 아닙니다.

VB .NET 2010에서 DataGridView 데이터를 IronXL을 사용하여 Excel로 내보내기: 이미지 2 - DataGridView 출력

DataGridView 데이터 모델 이해하기

DataGridView는 두 개의 컬렉션을 통해 내용을 노출합니다: Columns (HeaderText 및 열 인덱스 같은 메타데이터를 위한) 그리고 Rows (실제 데이터 셀을 위한). 각 DataGridViewRow은 열 위치로 색인되는 Cells 컬렉션을 포함합니다. 각 셀의 Value 속성은 상자로 포장된 객체를 반환하며, 이 객체를 Excel 셀에 쓰기 전에 캐스트하거나 변환해야 합니다. 이 계층 구조를 이해하는 것은 신뢰할 수 있는 내보내기 루프 작성에 필수적입니다.

비하인드 씬에서 DataTable는 형식화된 값을 저장하므로, 소수 급여는 IronXL 워크시트에 기록되기 전에 문자열로 변환할 필요가 없습니다. IronXL의 SetCellValue 메서드는 string, double, decimal, int, boolDateTime 오버로드를 수용하여, 원래 데이터 유형을 출력 파일에 보존할 수 있도록 합니다.

열 헤더와 함께 DataGridView 데이터를 Excel 파일로 어떻게 내보내나요?

내보내기 로직은 버튼의 클릭 핸들러 내부에 있습니다. 코드는 새로운 WorkBook를 생성하고 기본 워크시트를 가져와 첫 번째 행에 열 헤더를 기록한 다음 각 데이터 행을 그 아래에 기록합니다:

void btnExport_Click(object sender, EventArgs e)
{
    var workbook = WorkBook.Create();
    var sheet = workbook.DefaultWorkSheet;

    // Write column headers to row index 0
    for (int col = 0; col < DataGridView1.Columns.Count; col++)
    {
        sheet.SetCellValue(0, col, DataGridView1.Columns[col].HeaderText);
    }

    // Write data rows starting at row index 1
    for (int row = 0; row < DataGridView1.Rows.Count; row++)
    {
        for (int col = 0; col < DataGridView1.Columns.Count; col++)
        {
            object? cellValue = DataGridView1.Rows[row].Cells[col].Value;
            if (cellValue is not null)
            {
                sheet.SetCellValue(row + 1, col, cellValue.ToString()!);
            }
        }
    }

    string outputPath = "EmployeeData.xlsx";
    workbook.SaveAs(outputPath);
    MessageBox.Show("Export complete. File saved to: " + outputPath, "Success");
}
void btnExport_Click(object sender, EventArgs e)
{
    var workbook = WorkBook.Create();
    var sheet = workbook.DefaultWorkSheet;

    // Write column headers to row index 0
    for (int col = 0; col < DataGridView1.Columns.Count; col++)
    {
        sheet.SetCellValue(0, col, DataGridView1.Columns[col].HeaderText);
    }

    // Write data rows starting at row index 1
    for (int row = 0; row < DataGridView1.Rows.Count; row++)
    {
        for (int col = 0; col < DataGridView1.Columns.Count; col++)
        {
            object? cellValue = DataGridView1.Rows[row].Cells[col].Value;
            if (cellValue is not null)
            {
                sheet.SetCellValue(row + 1, col, cellValue.ToString()!);
            }
        }
    }

    string outputPath = "EmployeeData.xlsx";
    workbook.SaveAs(outputPath);
    MessageBox.Show("Export complete. File saved to: " + outputPath, "Success");
}
$vbLabelText   $csharpLabel

WorkBook 객체는 메모리 내에 있는 전체 Excel 파일을 나타냅니다. DefaultWorkSheet는 명시적으로 생성하지 않아도 첫 번째 시트를 반환합니다. 외부 루프는 HeaderText에서 헤더 텍스트를 가져와 행 0에 기록합니다. 내부 루프는 각 데이터 행을 반복한 후 변환하기 전에 셀 값이 널인지 확인합니다. row + 1 오프셋은 데이터가 헤더 행 아래로 이동하도록 합니다. SaveAs가 작성된 워크북을 지정된 경로에 Open XML XLSX 파일로 저장합니다.

VB .NET 2010에서 DataGridView 데이터를 IronXL을 사용하여 Excel로 내보내기: 이미지 3 - Excel 출력

결과 파일은 Excel, Google Sheets 또는 XLSX 포맷을 읽을 수 있는 모든 애플리케이션에서 열립니다. 열 헤더는 첫 번째 행에 나타나며, 모든 데이터 행은 DataGridView에 나타난 순서대로 나타납니다.

내보낸 Excel 파일에 셀 서식을 어떻게 적용하나요?

일반 데이터 덤프는 기능적이지만, 프레젠테이션 준비가 되지 않습니다. IronXL의 스타일링 API를 사용하면 저장하기 전에 굵은 글꼴, 배경색, 텍스트 색상 및 숫자 서식을 다양한 셀 범위에 적용할 수 있습니다.

void ExportWithFormatting()
{
    var workbook = WorkBook.Create();
    var sheet = workbook.DefaultWorkSheet;

    // Write column headers
    for (int col = 0; col < DataGridView1.Columns.Count; col++)
    {
        sheet.SetCellValue(0, col, DataGridView1.Columns[col].HeaderText);
    }

    // Style the header row: bold white text on blue background
    var headerRange = sheet.GetRange("A1:D1");
    headerRange.Style.Font.Bold = true;
    headerRange.Style.SetBackgroundColor("#4472C4");
    headerRange.Style.Font.SetColor("#FFFFFF");

    // Locate the Salary column index
    int salaryColIndex = -1;
    for (int i = 0; i < DataGridView1.Columns.Count; i++)
    {
        if (string.Equals(DataGridView1.Columns[i].HeaderText, "Salary",
            StringComparison.OrdinalIgnoreCase))
        {
            salaryColIndex = i;
            break;
        }
    }

    // Write data rows, preserving numeric types
    for (int row = 0; row < DataGridView1.Rows.Count; row++)
    {
        if (DataGridView1.Rows[row].IsNewRow) continue;

        for (int col = 0; col < DataGridView1.Columns.Count; col++)
        {
            object? cellValue = DataGridView1.Rows[row].Cells[col].Value;
            if (cellValue is null) continue;

            int targetRow = row + 1;

            if (col == salaryColIndex)
            {
                // Write salary as a true numeric decimal
                if (decimal.TryParse(cellValue.ToString(),
                    System.Globalization.NumberStyles.Number,
                    System.Globalization.CultureInfo.InvariantCulture,
                    out decimal decValue))
                {
                    sheet.SetCellValue(targetRow, col, decValue);
                }
                else
                {
                    sheet.SetCellValue(targetRow, col, cellValue.ToString()!);
                }
            }
            else
            {
                sheet.SetCellValue(targetRow, col, cellValue.ToString()!);
            }
        }
    }

    // Apply currency format to the salary column data range
    var salaryRange = sheet.GetRange("D2:D5");
    salaryRange.FormatString = "$#,##0";

    workbook.SaveAs("FormattedEmployeeData.xlsx");
}
void ExportWithFormatting()
{
    var workbook = WorkBook.Create();
    var sheet = workbook.DefaultWorkSheet;

    // Write column headers
    for (int col = 0; col < DataGridView1.Columns.Count; col++)
    {
        sheet.SetCellValue(0, col, DataGridView1.Columns[col].HeaderText);
    }

    // Style the header row: bold white text on blue background
    var headerRange = sheet.GetRange("A1:D1");
    headerRange.Style.Font.Bold = true;
    headerRange.Style.SetBackgroundColor("#4472C4");
    headerRange.Style.Font.SetColor("#FFFFFF");

    // Locate the Salary column index
    int salaryColIndex = -1;
    for (int i = 0; i < DataGridView1.Columns.Count; i++)
    {
        if (string.Equals(DataGridView1.Columns[i].HeaderText, "Salary",
            StringComparison.OrdinalIgnoreCase))
        {
            salaryColIndex = i;
            break;
        }
    }

    // Write data rows, preserving numeric types
    for (int row = 0; row < DataGridView1.Rows.Count; row++)
    {
        if (DataGridView1.Rows[row].IsNewRow) continue;

        for (int col = 0; col < DataGridView1.Columns.Count; col++)
        {
            object? cellValue = DataGridView1.Rows[row].Cells[col].Value;
            if (cellValue is null) continue;

            int targetRow = row + 1;

            if (col == salaryColIndex)
            {
                // Write salary as a true numeric decimal
                if (decimal.TryParse(cellValue.ToString(),
                    System.Globalization.NumberStyles.Number,
                    System.Globalization.CultureInfo.InvariantCulture,
                    out decimal decValue))
                {
                    sheet.SetCellValue(targetRow, col, decValue);
                }
                else
                {
                    sheet.SetCellValue(targetRow, col, cellValue.ToString()!);
                }
            }
            else
            {
                sheet.SetCellValue(targetRow, col, cellValue.ToString()!);
            }
        }
    }

    // Apply currency format to the salary column data range
    var salaryRange = sheet.GetRange("D2:D5");
    salaryRange.FormatString = "$#,##0";

    workbook.SaveAs("FormattedEmployeeData.xlsx");
}
$vbLabelText   $csharpLabel

GetRange 메소드는 연속적인 셀 블록을 선택하기 위해 표준 Excel 표기법(A1:D1)을 수용합니다. Style.Font.Bold, Style.SetBackgroundColor, Style.Font.SetColor 설정은 선택된 범위의 모든 셀에 해당 형식을 적용합니다. 숫자 열의 경우, 값을 문자열이 아닌 decimal로 기록하면 데이터 형식이 유지됩니다. 이로 인해 Excel이 $#,##0와 같은 숫자 형식을 올바르게 적용할 수 있게 됩니다. 문자열로 저장된 셀은 숫자 형식 코드에 반응하지 않습니다.

VB .NET 2010에서 DataGridView 데이터를 IronXL을 사용하여 Excel로 내보내기: 이미지 4 - 포맷된 Excel 출력

이 패턴을 확장하여 교대 행 음영, 열 너비 자동 맞춤 또는 창 고정을 적용할 수 있으며, IronXL 스타일 문서를 참조하십시오.

DataGridView 데이터를 XLSX 대신 CSV로 내보내는 방법은?

일부 워크플로는 오래된 시스템 또는 경량 데이터 파이프라인과의 호환성을 위해 CSV 출력이 필요합니다. IronXL은 주 코드에 대한 추가 구성 변경 없이 CSV 출력을 처리합니다:

void ExportToCsv()
{
    var workbook = WorkBook.Create();
    var sheet = workbook.DefaultWorkSheet;

    for (int col = 0; col < DataGridView1.Columns.Count; col++)
    {
        sheet.SetCellValue(0, col, DataGridView1.Columns[col].HeaderText);
    }

    for (int row = 0; row < DataGridView1.Rows.Count; row++)
    {
        if (DataGridView1.Rows[row].IsNewRow) continue;

        for (int col = 0; col < DataGridView1.Columns.Count; col++)
        {
            object? cell = DataGridView1.Rows[row].Cells[col].Value;
            if (cell is not null)
                sheet.SetCellValue(row + 1, col, cell.ToString()!);
        }
    }

    // Saving with a .csv extension produces a comma-separated file
    workbook.SaveAs("EmployeeData.csv");
}
void ExportToCsv()
{
    var workbook = WorkBook.Create();
    var sheet = workbook.DefaultWorkSheet;

    for (int col = 0; col < DataGridView1.Columns.Count; col++)
    {
        sheet.SetCellValue(0, col, DataGridView1.Columns[col].HeaderText);
    }

    for (int row = 0; row < DataGridView1.Rows.Count; row++)
    {
        if (DataGridView1.Rows[row].IsNewRow) continue;

        for (int col = 0; col < DataGridView1.Columns.Count; col++)
        {
            object? cell = DataGridView1.Rows[row].Cells[col].Value;
            if (cell is not null)
                sheet.SetCellValue(row + 1, col, cell.ToString()!);
        }
    }

    // Saving with a .csv extension produces a comma-separated file
    workbook.SaveAs("EmployeeData.csv");
}
$vbLabelText   $csharpLabel

XLSX 내보내기와의 유일한 차이점은 SaveAs에 전달되는 파일 확장자입니다. IronXL은 확장자를 감지하고 자동으로 올바른 형식으로 워크북을 직렬화합니다. 이 일관성 덕분에 출력 형식에 관계없이 데이터 쓰기 논리가 동일하게 유지되며, 이는 각 형식에 대해 별도의 코드 경로가 필요한 라이브러리에 비해 큰 장점입니다.

CSV 내보내기는 Python pandas 스크립트, 대량 데이터베이스 가져오기 도구, 또는 이진 XLSX 파일을 읽지 못하는 분석 플랫폼과 같은 후속 소비자가 있을 때 특히 유용합니다.

대용량 DataGridView 데이터셋을 효율적으로 처리하는 방법은?

수십 수천 개의 행이 포함된 그리드의 경우 성능이 고려 사항이 됩니다. 다음 패턴은 전체 데이터셋을 한 번에 구성하여 메모리 압력을 줄입니다:

대용량 데이터셋에 대한 IronXL 내보내기 방법 비교
접근 방식 처리된 행 오피스 필요 유형 보존
Microsoft.Office.Interop.Excel ~65k까지(느림) 부분적
IronXL(문자열 셀) 100만+ 행 아니요 아니요(모두 텍스트)
IronXL(유형화된 셀) 100만+ 행 아니요
DataTable에서 IronXL로 100만+ 행 아니요 네(자동)

DataGridViewDataTable에 바인딩될 때, WorkSheet.LoadDataTable 메서드를 사용하여 IronXL에 테이블을 직접 로드하여 셀별 반복을 완전히 건너뛸 수 있습니다. 이 접근 방식은 더 빠르고 모든 열 유형을 자동으로 보존합니다.

DataTable이 지원되지 않는 그리드의 경우, 앞에서 설명한 셀별 패턴이 표준 접근 방식을 유지합니다. 대규모 내보내기 동안 UI가 응답성을 유지하도록 비동기적으로 내보내려면, 내보내기 논리를 Task.Run 호출로 감싸고, 백그라운드 스레드에서 결과를 await하세요. UI 스레드로 결과를 다시 마샬링하는 패턴에 대한 문서는 비동기 파일 작업 문서를 참조하십시오.

DataGridView 내보내기에 IronXL이 Office Interop보다 나은 이유는 무엇입니까?

전통적인 .NET 솔루션은 실행 중인 Excel 프로세스를 구동하기 위해 Microsoft.Office.Interop.Excel를 사용했습니다. 해당 접근 방식은 여러 배포 및 신뢰성 문제를 만듭니다:

  • 애플리케이션을 실행하는 모든 컴퓨터에 Microsoft Excel의 라이선스된 복사본이 설치되어야 합니다.
  • 서버 환경과 클라우드 컨테이너는 일반적으로 Office를 설치할 수 없습니다.
  • COM Interop은 메모리 누수 및 엑셀 좀비 프로세스를 피하기 위해 모든 객체의 명시적인 해제가 필요합니다.
  • COM 경계를 통한 오류 처리는 장황하고 불안정합니다.
  • 행 수가 증가함에 따라 성능이 빠르게 저하됩니다.

IronXL은 외부 프로세스를 실행하지 않고 OOXML 파일 형식에 직접 씁니다. 애플리케이션은 자체 포함된 단위로 배포됩니다. 라이브러리의 API는 완전히 관리되는 .NET이므로, 가비지 컬렉션은 Marshal.ReleaseComObject 호출 없이 메모리를 자동으로 처리합니다. 프로세스 간 통신이 발생하지 않기 때문에 속도가 상당히 빠릅니다.

대안을 평가하는 팀을 위해, ClosedXML은 인기 있는 오픈 소스 옵션입니다. IronXL은 PDF 변환, 차트 생성 및 상업적 지원을 포함한 더 넓은 기능 세트를 제공하며, 이는 기업 조달 결정에 있어 고려 사항이 될 수 있습니다. 팀 크기 및 배포 시나리오에 맞는 적절한 계층에 맞추려면 IronXL 라이선스 옵션을 검토하십시오.

기능 비교: IronXL vs Office Interop
특징 IronXL Office Interop
Office 설치 필요 아니요
서버/클라우드 배포 아니요(지원되지 않음)
관리된 메모리 모델 아니오 (COM 정리 필요)
XLSX / CSV / XLS 형식 모두 세 가지 설치된 Excel에 따라 다름
스프레드시트에서 PDF 내보내기 추가 라이브러리가 필요합니다

IronXL 튜토리얼 섹션에서는 기존 Excel 파일 읽기, 템플릿 수정, 차트 생성 및 조건부 서식을 적용하는 방법을 다룹니다. 이는 여기에서 보여지는 DataGridView 내보내기 패턴에서 자연스럽게 확장되는 모든 기능입니다.

다음 단계는 무엇입니까?

이제 IronXL을 사용하여 DataGridView을 포맷된 Excel 파일로 내보내는 작동하는 C# 코드를 가지고 있습니다. 여기에서 다음 방향을 고려하십시오:

  • 오류 처리 추가: 내보내기 코드를 try/catch 블록으로 감싸고, 파일이 잠겨 있거나 경로가 잘못된 경우 사용자가 쉽게 이해할 수 있는 메시지를 표시합니다
  • 파일 경로 선택 지원: 사용자에게 실행 시간에 출력 위치와 파일 이름을 선택하게 하도록 SaveFileDialog을 사용합니다
  • 실제 데이터 로드: ADO.NET이나 Entity Framework를 사용하여 샘플 DataTable를 데이터베이스 쿼리로 교체합니다
  • 기존 파일 읽기: WorkBook.Load을(를) 사용하여 기존 스프레드시트를 열고 새로 하나를 생성하는 대신 갱신합니다
  • 여러 시트로 내보내기: 관련 있는 데이터 세트를 구성하기 위해 동일한 WorkBook에서 추가 WorkSheet 객체를 생성합니다
  • 조건부 서식 적용: IronXL의 조건부 서식 API를 사용하여 임계값을 초과하는 셀을 강조합니다
  • 라이선스 옵션 검토: 무료 체험판을 사용할 수 있습니다; 라이선스 티어는 개인 개발자부터 Enterprise 배포까지 포함합니다
  • 전체 API 참조 탐색: IronXL 개체 참조에는 사용 가능한 모든 클래스 및 메서드가 문서화되어 있습니다

자주 묻는 질문

C#에서 DataGridView 데이터를 Excel로 내보내는 가장 쉬운 방법은 무엇인가요?

IronXL 사용하면 간단한 루프를 통해 DataGridView 데이터를 C#에서 Excel로 내보낼 수 있습니다. 이 루프는 열 헤더와 데이터 행을 WorkBook 객체에 기록한 다음 SaveAs를 호출하여 XLSX 파일을 생성합니다. Microsoft Office 설치는 필요하지 않습니다.

C# 윈도우 폼 애플리케이션에서 IronXL 사용하여 엑셀 파일을 처리하는 방법은 무엇인가요?

NuGet 통해 IronXL 설치하고, `using IronXL 지시문을 추가하고, `WorkBook.Create()`를 사용하여 워크북을 생성하고, `SetCellValue`를 사용하여 데이터를 쓰고, `SaveAs`를 사용하여 저장하세요. IronXL XLSX, XLS 및 CSV 형식을 지원합니다.

IronXL 대용량 DataGridView 데이터셋을 Excel로 내보내는 기능을 지원합니까?

네, IronXL 대규모 데이터 세트를 효율적으로 처리합니다. DataTable을 기반으로 하는 DataGridView의 경우, LoadDataTable 메서드를 사용하여 셀 단위 반복을 건너뛰고 성능을 더욱 향상시킬 수 있습니다.

IronXL 사용하려면 Microsoft Excel이 설치되어 있어야 합니까?

아니요. IronXL Excel이나 COM 자동화 프로그램을 실행하지 않고 Open XML 파일 형식으로 직접 기록합니다. IronXL 로 개발된 애플리케이션은 Office를 사용할 수 없는 서버 및 클라우드 환경에 배포할 수 있습니다.

Office Interop 대신 IronXL 사용하여 Excel로 내보낼 때의 이점은 무엇입니까?

IronXL Office 설치가 필요 없고, COM 메모리 누수 문제를 방지하며, 서버 및 클라우드 배포를 지원하고, XLSX, XLS 및 CSV 파일을 읽고 쓰기 위한 깔끔하고 관리되는 .NET API를 제공합니다.

IronXL DataGridView 데이터를 XLSX뿐 아니라 CSV 형식으로도 내보낼 수 있나요?

네. WorkBook.SaveAs에 .csv 파일 경로를 전달하면 쉼표로 구분된 파일이 생성됩니다. 두 형식 모두 데이터 저장 코드는 동일하며 파일 확장자만 다릅니다.

IronXL 사용하여 내보낸 Excel 셀에 서식을 적용하는 방법은 무엇입니까?

WorkSheet.GetRange를 사용하여 셀 범위를 선택한 다음 Style 속성에 접근하여 Font.Bold, SetBackgroundColor, Font.SetColor 및 숫자 서식에 대한 FormatString을 설정하십시오.

C# 프로젝트에서 IronXL 사용하려면 어떻게 시작해야 하나요?

프로젝트에서 Install-Package IronXL 또는 dotnet add package IronXL 명령을 실행하고, 파일 맨 위에 using IronXL 추가한 다음 ironsoftware.com/csharp/excel/에 있는 IronXL 설명서의 예제를 따르세요.

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

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

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

Iron Support Team

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