C#에서 DataTable을 CSV로 변환하는 방법
IronXL을 사용하여 C#에서 DataTable을 CSV로 변환하려면 WorkBook을 생성하고, DataTable 행으로 채운 후 SaveAsCsv() 메서드를 호출하세요. 복잡한 루프나 Interop이 필요 없으며, xlsx 파일에서 엑셀 데이터 추출 후 CSV로 내보내는 작업도 동일한 방식으로 처리할 수 있습니다.
빠른 시작: DataTable의 CSV로의 한 줄 내보내기
IronXL을 사용하여 채워진 DataTable을(를) 단일 메서드 호출로 CSV 파일로 변환하세요—루프, Interop, 복잡성 없이. 몇 초 만에 SaveAsCsv을 사용하여 내보내기 위해서는 W또는kBook과(와) 해당 DefaultW또는kSheet만 필요합니다.
- DataTable을 CSV C# 라이브러리로 변환하는 다운로드 및 설치
- Utilize `DataTable` class to st또는e new data
- 새 스프레드시트를 만들거나 기존 스프레드시트를 가져옵니다.
- 테이블의 각 행을 순회하면서 워크시트의 셀에 해당 값을 입력합니다.
- Exp또는t to CSV file with `SaveAsCsv` C# function
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 형식 작업에 필요한 모든 구성 요소를 포함합니다.
튜토리얼 사용법
DataTable을 CSV로 어떻게 생성하고 내보내나요?
DataTable을 CSV로 변환하는 과정은 W또는kBook을 생성하고, 데이터를 채운 후 IronXL의 내장 CSV 작성 기능을 사용하는 것입니다. 이 접근 방식은 CSV 문자열을 수동으로 만드는 것이나 전통적인 파일 스트리밍 방법을 사용하는 것보다 더 효율적입니다.
어떤 네임스페이스를 가져와야 하나요?
먼저, IronXL 네임스페이스를 가져옵니다. IronXL은 DataSet 및 DataTable 객체의 가져오기와 내보내기를 포괄적으로 지원하며, 데이터베이스 기반 응용 프로그램에 이상적입니다.
using IronXL;
using IronXL;
Imports IronXL
완전한 코드 예제는 무엇인가요?
다음 코드를 추가하세요:
: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
Imports IronXL
Imports System
Imports System.Data
' Create a new DataTable object
Dim table As New DataTable()
' Add a single column named "Example_DataSet" of type string
table.Columns.Add("Example_DataSet", GetType(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
Dim wb As WorkBook = WorkBook.Create(ExcelFileFormat.XLS)
wb.Metadata.Author = "OJ"
' Get the default worksheet
Dim ws As WorkSheet = wb.DefaultWorkSheet
' Initialize rowCounter for Excel sheet rows
Dim rowCount As Integer = 1
' Loop through each row in the DataTable and add the data to the Excel worksheet
For Each row As DataRow In table.Rows
' Populate worksheet cells with data from DataTable
ws("A" & rowCount).Value = row(0).ToString()
rowCount += 1
Next
' Save the workbook as a CSV file
wb.SaveAsCsv("Save_DataTable_CSV.csv", ";") ' Will be saved as: Save_DataTable_CSV.Sheet1.csv
코드는 단계별로 어떻게 작동하나요?
위의 코드는 DataTable을 생성하고 'OJ'를 소유주로 지정하여 새 워크북을 생성한 다음, f또는each 루프를 사용하여 DataTable에서 Excel 워크시트로 데이터를 삽입합니다. 마지막으로, SaveAsCsv 메서드가 데이터 테이블을 CSV로 내보냅니다.
프로세스 분해:
-
DataTable 생성: 새
DataTable을 초기화하고 열을 추가하여 스키마를 정의합니다. 이는 데이터베이스 테이블 구조를 정의하는 것과 유사합니다. -
데이터 채우기:
Rows.Add()메서드를 사용하여DataTable에 행을 추가합니다. 각 행은 CSV 내보내기를 위한 레코드를 나타냅니다. -
워크북 생성: IronXL의
W또는kBook.Create()메서드가 새 Excel 워크북을 초기화합니다. 필요 시 여러 워크시트를 포함하는 스프레드시트 생성도 가능합니다. -
셀 채우기: f또는each 루프가
DataTable행을 반복하며 각 값을 셀 참조 구문 (예: "A1", "A2")을 사용하여 특정 워크시트 셀로 매핑합니다. - 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", ",");
' Create a DataTable with multiple columns
Dim advancedTable As New DataTable()
advancedTable.Columns.Add("ID", GetType(Integer))
advancedTable.Columns.Add("Name", GetType(String))
advancedTable.Columns.Add("Price", GetType(Decimal))
' --snip--
w또는kbook.SaveAsCsv("products.csv", ",")
출력 결과는 어떻게 나타나나요?
출력 Excel 워크시트는 다음과 같이 표시됩니다:
큰 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}");
}
Imports System
Try
' Your DataTable to CSV conversion code
Dim wb As W또는kBook = W또는kBook.Create()
' ... rest of the code
wb.SaveAsCsv("output.csv", ",")
Console.WriteLine("CSV file created successfully!")
Catch ex As Exception
Console.WriteLine($"Err또는 creating CSV: {ex.Message}")
End Try
라이브러리 바로가기
카드를 병합하고 병합을 해제하는 방법 및 Excel 스프레드시트에서 셀을 다루는 방법을 IronXL API 참조 문서를 통해 배우고 공유하세요.
IronXL API 참조 문서자주 묻는 질문
복잡한 반복문을 사용하지 않고 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() 메서드를 사용하면 사용자 지정 구분 기호를 지정할 수 있습니다. 예제 코드에서는 쉼표(",")를 구분 기호로 사용했지만, 필요에 따라 다른 문자로 변경할 수 있습니다.

