
C#에서 데이터셋을 CSV로 변환하는 방법
다음 기사에서는 C# 데이터셋을 CSV 파일로 변환하는 방법을 설명합니다.
IronXL은 CSV 형식이든 엑셀 파일이든 스프레드시트 작업에 매우 적합한 솔루션입니다. IronXL은 개발에 무료이며 사용이 간편하며 모든 종류의 스프레드시트와 작업할 광범위한 기능을 제공합니다. 안전하며 높은 성능을 제공합니다. 진행하기 전에 IronXL에 대한 간단한 소개를 하겠습니다.
IronXL
IronXL은 Iron Software 라이브러리로, C# 개발자가 .NET 애플리케이션 및 웹사이트에서 엑셀 (및 기타 스프레드시트 파일)을 읽고 생성하고 편집할 수 있게 합니다.
IronXL은 C# 및 .NET에서 엑셀 및 기타 스프레드시트 파일을 다루는 빠르고 쉬운 방법을 제공합니다. IronXL은 Office Excel Interop을 필요로 하지 않으며 Microsoft Office 설치나 다른 의존성을 포함할 필요가 없습니다.
데이터셋의 CSV 파일을 만들고 작성하는 코드를 작성하는 것으로 넘어가겠습니다.
새로운 Visual Studio 프로젝트 생성하기
최신 버전의 Visual Studio를 사용하는 것이 좋지만, 선호에 따라 사용하는 건 가능하며 Visual Studio IDE를 열어보세요. 새 프로젝트를 만드는 단계는 버전에 따라 다를 수 있음을 유의하십시오.
Visual Studio의 시작 창
새 프로젝트 만들기를 클릭하세요. 아래와 같이 새 창이 나타납니다.
Visual Studio에서 새 프로젝트 생성
목록에서 원하는 프로젝트 템플릿을 선택하세요. 다음 버튼을 클릭하면 아래와 같이 새 창이 열립니다.
새로 생성된 프로젝트 구성하기
프로젝트 이름, 위치를 선택하고 다음 버튼을 누르세요. 아래와 같이 새 창이 나타납니다.
.NET Framework 버전 선택
대상 .NET Framework를 선택하세요. IronXL은 모든 .NET Framework를 지원하므로 필요에 따라 선택하세요. 이 튜토리얼에서는 .NET 7을 사용할 것입니다. 생성 버튼을 클릭하면 아래와 같이 새로운 프로젝트가 생성됩니다.
Visual Studio의 새 콘솔 애플리케이션
이 애플리케이션에서 사용하기 위해 IronXL NuGet 패키지를 설치하세요.
IronXL 설치
NuGet 패키지 관리자 콘솔을 열고 다음 명령어를 입력하세요.
아래와 같이 NuGet 패키지가 설치되고 사용 준비가 완료됩니다.
IronXL 패키지와 그 패키지 종속성의 설치
이제 데이터셋을 C#에서 CSV 파일로 변환하는 코드를 작성합시다.
이 예제는 SQL 서버 데이터베이스에서 데이터를 불러옵니다. SQL DB에서 데이터셋을 가져온 후, 이 입력 데이터를 사용하여 CSV 파일을 생성할 것입니다.
데이터 테이블 생성
첫 번째 단계는 SQL에서 데이터를 불러오는 것이지만, 원하는 데이터 소스를 사용할 수 있습니다.
이 튜토리얼에서는 다음 데이터를 사용합니다:
샘플 데이터로 새로운 데이터베이스 생성
샘플 데이터를 생성하는 SQL 스크립트는 다음과 같습니다:
USE Test_DB;
CREATE TABLE STUDENT_DATA
(
REG_NUM INT PRIMARY KEY,
FIRST_NAME VARCHAR(30),
LAST_NAME VARCHAR(30),
CLASS VARCHAR(5),
CONTACT_NUM VARCHAR(15)
);
INSERT INTO STUDENT_DATA
VALUES
(123, 'JHON', 'SMITH', '2', '(223) 444-1234'),
(124, 'THOMAS', 'CHARLES', '2', '(332) 555-1235'),
(125, 'WILLIAM', 'RICHARD', '2', '(432) 666-1236'),
(126, 'JAMES', 'BOND', '2', '(543) 777-1237'),
(127, 'CRISTOPHER', 'MICHAL', '2', '(555) 999-1238'),
(128, 'DONALD', 'MARK', '2', '(777) 888-1239');
다음 C# 코드는 데이터 테이블을 CSV 파일로 내보내는 데 사용됩니다.
using System;
using System.Data;
using System.Data.SqlClient;
using IronXL;
class Program
{
// Method to retrieve data from SQL database and return as DataTable
public static DataTable GetData()
{
// Define connection string (modify accordingly for your local server)
string connString = @"server=DESKTOP-NIP3TOE\SQLEXPRESS; Database=Test_DB; Integrated Security=True;";
string query = "SELECT * FROM STUDENT_DATA";
try
{
// Create SQL connection
using SqlConnection conn = new SqlConnection(connString);
// Create SQL command
SqlCommand cmd = new SqlCommand(query, conn);
conn.Open();
// Create data adapter
using SqlDataAdapter da = new SqlDataAdapter(cmd);
// Query the database and return the result to a data table
DataTable dt = new DataTable();
da.Fill(dt);
return dt;
}
catch (Exception ex)
{
Console.WriteLine($"An error occurred: {ex.Message}");
throw;
}
}
static void Main(string[] args)
{
// Retrieve data and store it in a DataTable
DataTable table = GetData();
// Create a new Workbook
WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);
wb.Metadata.Author = "JOHN";
// Use the default worksheet
WorkSheet ws = wb.DefaultWorkSheet;
int rowCount = 1;
// Populate the worksheet with data from the DataTable
foreach (DataRow row in table.Rows)
{
ws[$"A{rowCount}"].Value = row[0].ToString();
ws[$"B{rowCount}"].Value = row[1].ToString();
ws[$"C{rowCount}"].Value = row[2].ToString();
ws[$"D{rowCount}"].Value = row[3].ToString();
ws[$"E{rowCount}"].Value = row[4].ToString();
rowCount++;
}
// Save the workbook as a CSV file
wb.SaveAsCsv(@"D:\Tutorial Project\Save_DataTable_CSV.csv");
}
}Imports System
Imports System.Data
Imports System.Data.SqlClient
Imports IronXL
Friend Class Program
' Method to retrieve data from SQL database and return as DataTable
Public Shared Function GetData() As DataTable
' Define connection string (modify accordingly for your local server)
Dim connString As String = "server=DESKTOP-NIP3TOE\SQLEXPRESS; Database=Test_DB; Integrated Security=True;"
Dim query As String = "SELECT * FROM STUDENT_DATA"
Try
' Create SQL connection
Using conn As New SqlConnection(connString)
' Create SQL command
Dim cmd As New SqlCommand(query, conn)
conn.Open()
' Create data adapter
Using da As New SqlDataAdapter(cmd)
' Query the database and return the result to a data table
Dim dt As New DataTable()
da.Fill(dt)
Return dt
End Using
End Using
Catch ex As Exception
Console.WriteLine($"An error occurred: {ex.Message}")
Throw
End Try
End Function
Shared Sub Main(ByVal args() As String)
' Retrieve data and store it in a DataTable
Dim table As DataTable = GetData()
' Create a new Workbook
Dim wb As WorkBook = WorkBook.Create(ExcelFileFormat.XLS)
wb.Metadata.Author = "JOHN"
' Use the default worksheet
Dim ws As WorkSheet = wb.DefaultWorkSheet
Dim rowCount As Integer = 1
' Populate the worksheet with data from the DataTable
For Each row As DataRow In table.Rows
ws($"A{rowCount}").Value = row(0).ToString()
ws($"B{rowCount}").Value = row(1).ToString()
ws($"C{rowCount}").Value = row(2).ToString()
ws($"D{rowCount}").Value = row(3).ToString()
ws($"E{rowCount}").Value = row(4).ToString()
rowCount += 1
Next row
' Save the workbook as a CSV file
wb.SaveAsCsv("D:\Tutorial Project\Save_DataTable_CSV.csv")
End Sub
End Class코드 설명
-
방법
GetData()은(는) SQL Server 데이터베이스에서 데이터를 검색하고 이를DataTable으로 반환합니다. -
Main메서드에서는 IronXL을 사용하여WorkBook을(를) 생성하고 데이터가WorkSheet에 채워집니다. -
foreach루프는DataTable의 각 행을 반복하며 각 값을WorkSheet의 새 행에 삽입합니다. -
마지막으로 IronXL에서 제공하는
SaveAsCsv함수로 CSV 파일을 저장합니다.
출력
이 프로그램으로 생성된 CSV 파일은 다음과 같습니다:
CSV 출력 파일
CSV 파일이 제대로 생성되어 제공된 입력과 일치함이 명확합니다.
요약
이 글에서는 C#에서 데이터셋으로 CSV 파일을 생성하는 방법을 설명했습니다. 이 라이브러리는 C#을 사용하여 CSV 파일을 읽을 수도 있습니다. SQL Server 데이터베이스에서의 데이터셋은 세 단계로 구성되어 CSV 파일을 생성합니다:
- SQL Server에서 데이터 가져오기.
- 데이터를 데이터 테이블에 채우기.
- 그 데이터 테이블에서 CSV 파일 생성.
이처럼 IronXL을 사용하여 .NET 7에서 CSV 파일을 생성하는 것은 매우 쉽습니다. 프로그램의 성능은 .NET 7과 IronXL로 작성되어 예외적입니다. IronXL은 엑셀 파일 생성, 읽기 및 조작과 같은 다른 유용한 기능도 제공합니다. 자세한 내용은 공식 문서를 참조하십시오.
추가적으로, IronPDF는 개발자들에게 PDF 문서를 이미지로 렌더링하고 PDF에서 텍스트와 콘텐츠를 추출할 수 있는 방법을 제공합니다. 또한, IronPDF는 PDF에서 차트를 렌더링, 바코드를 추가, 비밀번호로 보안을 강화할 수 있습니다.
IronXL의 무료 버전은 개발 목적으로 사용됩니다. 운영 환경에서 응용 프로그램을 배포하려면 무료 체험판 또는 상업용 라이선스를 구입하세요. IronXL은 Iron Suite의 일부로, 다섯 개의 라이브러리로 구성되어 있습니다:
- 오늘 탐구할 IronXL.
- PDF 파일 생성, 읽기 및 조작을 위한 IronPDF
- 이미지에서 텍스트를 추출하기 위한 IronOCR
- 바코드를 읽고 생성하기 위한 IronBarcode
- 웹사이트에서 구조화된 데이터를 추출하기 위한 IronWebScraper.
이 제품들을 모두 함께 구매하면 두 개 가격으로 얻을 수 있습니다.

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



