How to Use C# to Convert Datatable to CSV

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

IronXL을 사용하여 C#에서 DataTable을(를) CSV로 변환하려면 W또는kBook을(를) 생성하고, DataTable 행으로 채운 후 SaveAsCsv() 메서드를 호출하세요 - 복잡한 루프나 Interop이 필요하지 않습니다.

빠른 시작: DataTable의 CSV로의 한 줄 내보내기

IronXL을 사용하여 채워진 DataTable을(를) 단일 메서드 호출로 CSV 파일로 변환하세요—루프, Interop, 복잡성 없이. 몇 초 만에 SaveAsCsv을 사용하여 내보내기 위해서는 W또는kBook과(와) 해당 DefaultW또는kSheet만 필요합니다.

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

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

    IronXl.W또는kBook.Create().DefaultW또는kSheet.SaveAsCsv("output.csv", ",");
  3. 실제 운영 환경에서 테스트할 수 있도록 배포하세요.

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

    arrow pointer

1단계

IronXL을 내 프로젝트에 어떻게 설치하나요?

앱에서 IronXL을 사용하기 전에 설치해야 합니다. IronXL은 프로젝트에 대한 여러 설치 옵션을 제공합니다. IronXL은 Microsoft Excel 또는 Interop 설치 없이 C#에서 Excel 파일 작업을 단순화하는 라이브러리입니다.

어떤 설치 방법을 사용해야 할까요?

다음 링크를 사용하여 공식 사이트에서 다운로드하세요: https://ironsoftware.com/csharp/excel/docs/

또는

  • Visual Studio에서 프로젝트 메뉴 선택
  • NuGet 패키지 관리 클릭
  • IronXl.Excel 검색
  • 설치 클릭

어떤 NuGet 명령을 사용해야 하나요?

Install-Package IronXl.Excel

NuGet 패키지 매니저를 선택한 이유는?

NuGet은 종속성을 자동으로 관리하고 라이브러리를 최신 상태로 유지하기 때문에 .NET 개발자에게 선호되는 방법입니다. IronXL 패키지는 스프레드시트 파일 형식 변환 및 다양한 Excel 형식 작업에 필요한 모든 구성 요소를 포함합니다.

IronXl.Excel NuGet Install-Package 창에서 패키지 세부 정보, 버전 정보 및 설치 버튼을 Visual Studio 패키지 매니저에 표시
Figure 1 - IronXl.Excel NuGet Package

튜토리얼 사용법

DataTable을 CSV로 어떻게 생성하고 내보내나요?

DataTable을 CSV로 변환하는 과정은 W또는kBook을 생성하고, 데이터를 채운 후 IronXL의 내장 CSV 작성 기능을 사용하는 것입니다. 이 접근 방식은 CSV 문자열을 수동으로 만드는 것이나 전통적인 파일 스트리밍 방법을 사용하는 것보다 더 효율적입니다.

어떤 네임스페이스를 가져와야 하나요?

먼저, IronXL 네임스페이스를 가져옵니다. IronXL은 DataSetDataTable 객체의 가져오기와 내보내기를 포괄적으로 지원하며, 데이터베이스 기반 응용 프로그램에 이상적입니다.

using IronXL;
using IronXL;
$vbLabelText   $csharpLabel

완전한 코드 예제는 무엇인가요?

다음 코드를 추가하세요:

:path=/static-assets/excel/content-code-examples/how-to/csharp-database-to-csv-datatable.cs
using IronXL;
using System;
using System.Data;

// Create a new DataTable object
DataTable table = new DataTable();

// Add a single column named "Example_DataSet" of type string
table.Columns.Add("Example_DataSet", typeof(string));

// Add rows to the DataTable
table.Rows.Add("0");
table.Rows.Add("1");
table.Rows.Add("2");
table.Rows.Add("3");
table.Rows.Add("1");
table.Rows.Add("2");
table.Rows.Add("3");

// Create a new Excel workbook and set its author metadata
WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);
wb.Metadata.Author = "OJ";

// Get the default worksheet
WorkSheet ws = wb.DefaultWorkSheet;

// Initialize rowCounter for Excel sheet rows
int rowCount = 1;

// Loop through each row in the DataTable and add the data to the Excel worksheet
foreach (DataRow row in table.Rows)
{
    // Populate worksheet cells with data from DataTable
    ws["A" + (rowCount)].Value = row[0].ToString();
    rowCount++;
}

// Save the workbook as a CSV file
wb.SaveAsCsv("Save_DataTable_CSV.csv", ";"); // Will be saved as: Save_DataTable_CSV.Sheet1.csv
$vbLabelText   $csharpLabel

코드는 단계별로 어떻게 작동하나요?

위의 코드는 DataTable을 생성하고 'OJ'를 소유주로 지정하여 새 워크북을 생성한 다음, f또는each 루프를 사용하여 DataTable에서 Excel 워크시트로 데이터를 삽입합니다. 마지막으로, SaveAsCsv 메서드가 데이터 테이블을 CSV로 내보냅니다.

프로세스 분해:

  1. DataTable 생성: 새 DataTable을 초기화하고 열을 추가하여 스키마를 정의합니다. 이는 데이터베이스 테이블 구조를 정의하는 것과 유사합니다.

  2. 데이터 채우기: Rows.Add() 메서드를 사용하여 DataTable에 행을 추가합니다. 각 행은 CSV 내보내기를 위한 레코드를 나타냅니다.

  3. 워크북 생성: IronXL의 W또는kBook.Create() 메서드가 새 Excel 워크북을 초기화합니다. 필요 시 여러 워크시트를 포함하는 스프레드시트 생성도 가능합니다.

  4. 셀 채우기: f또는each 루프가 DataTable 행을 반복하며 각 값을 셀 참조 구문 (예: "A1", "A2")을 사용하여 특정 워크시트 셀로 매핑합니다.

  5. CSV 내보내기: SaveAsCsv() 메서드는 특수 문자에 대한 올바른 이스케이프 및 구분자 처리 등 CSV 서식 지정의 복잡성을 처리합니다.

고급 데이터 테이블 시나리오는 어떻게 하나요?

다중 열을 포함한 복잡한 DataTable에 대해서는 코드를 다음과 같이 확장하세요:

// Create a DataTable with multiple columns
DataTable advancedTable = new DataTable();
advancedTable.Columns.Add("ID", typeof(int));
advancedTable.Columns.Add("Name", typeof(string));
advancedTable.Columns.Add("Price", typeof(decimal));

--snip--
w또는kbook.SaveAsCsv("products.csv", ",");
// Create a DataTable with multiple columns
DataTable advancedTable = new DataTable();
advancedTable.Columns.Add("ID", typeof(int));
advancedTable.Columns.Add("Name", typeof(string));
advancedTable.Columns.Add("Price", typeof(decimal));

--snip--
w또는kbook.SaveAsCsv("products.csv", ",");
$vbLabelText   $csharpLabel

출력 결과는 어떻게 나타나나요?

출력 Excel 워크시트는 다음과 같이 표시됩니다:

CSV 형식으로 내보낸 데이터 테이블 값을 표시하는 Excel 워크시트, A1에서 A7까지 셀에는 순차적인 숫자 값이 포함되어 있음
그림 2 - 데이터 테이블을 CSV로 내보낸 결과

DataTable을 어떻게 처리하나요?

수천 개의 행을 포함하는 큰 DataTable을(를) 작업할 때도 IronXL은 뛰어난 성능을 유지합니다. 라이브러리는 대량의 데이터셋을 효율적으로 처리합니다. 프로덕션 환경에서는 라이선스 키를 적용하여 워터마크를 제거하고 전체 기능을 활성화하세요.

에러 처리는 어떻게 하나요?

파일 작업 시 항상 적절한 에러 처리를 구현하세요:

try 
{
    // Your DataTable to CSV conversion code
    W또는kBook wb = W또는kBook.Create();
    // ... rest of the code
    wb.SaveAsCsv("output.csv", ",");
    Console.WriteLine("CSV file created successfully!");
}
catch (Exception ex)
{
    Console.WriteLine($"Err또는 creating CSV: {ex.Message}");
}
try 
{
    // Your DataTable to CSV conversion code
    W또는kBook wb = W또는kBook.Create();
    // ... rest of the code
    wb.SaveAsCsv("output.csv", ",");
    Console.WriteLine("CSV file created successfully!");
}
catch (Exception ex)
{
    Console.WriteLine($"Err또는 creating CSV: {ex.Message}");
}
$vbLabelText   $csharpLabel

라이브러리 바로가기

### IronXL API 참조 문서

카드를 병합하고 병합을 해제하는 방법 및 Excel 스프레드시트에서 셀을 다루는 방법을 IronXL API 참조 문서를 통해 배우고 공유하세요.

IronXL API 참조 문서
Documentation related to 라이브러리 바로가기

자주 묻는 질문

복잡한 반복문을 사용하지 않고 C#에서 DataTable을 CSV로 변환하는 방법은 무엇인가요?

IronXL은 DataTable을 CSV로 변환하는 간단한 한 줄짜리 솔루션을 제공합니다. 워크북을 생성하고 DataTable 데이터를 채운 후, SaveAsCsv() 메서드를 사용하면 루프를 작성하거나 Interop을 사용하지 않고도 CSV 형식으로 직접 내보낼 수 있습니다.

DataTable을 CSV로 변환하는 라이브러리의 설치 옵션은 무엇인가요?

IronXL은 Visual Studio의 NuGet 패키지 관리자에서 'IronXl.Excel'을 검색하거나 NuGet 명령줄을 사용하여 설치할 수 있습니다. 이 방법은 종속성을 자동으로 관리하고 라이브러리를 최신 상태로 유지하므로 권장됩니다.

DataTable을 CSV로 변환하려면 Microsoft Excel이 설치되어 있어야 하나요?

아니요, IronXL은 Microsoft Excel이나 Interop 설치 없이 독립적으로 작동합니다. C# 애플리케이션에서 Excel 파일 및 CSV 내보내기 작업을 간소화하는 독립형 라이브러리입니다.

DataTable을 CSV로 변환하려면 어떤 네임스페이스를 가져와야 하나요?

C# 파일 맨 위에 'using IronXL;'을 추가하여 IronXL 네임스페이스를 가져와야 합니다. 이렇게 하면 DataSet 및 DataTable 객체의 가져오기 및 내보내기에 대한 포괄적인 지원을 사용할 수 있습니다.

CSV 파일로 내보낼 때 사용자 지정 구분 기호를 지정할 수 있나요?

네, IronXL의 SaveAsCsv() 메서드를 사용하면 사용자 지정 구분 기호를 지정할 수 있습니다. 예제 코드에서는 쉼표(",")를 구분 기호로 사용했지만, 필요에 따라 다른 문자로 변경할 수 있습니다.

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

커티스 차우는 칼턴 대학교에서 컴퓨터 과학 학사 학위를 취득했으며, 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
샘플을 실행하세요 데이터가 스프레드시트로 변환되는 것을 지켜보세요.