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

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를 열어보세요. 새 프로젝트를 만드는 단계는 버전에 따라 다를 수 있음을 유의하십시오.

C#에서 데이터셋을 CSV로 변환하는 방법, 그림 1: Visual Studio의 시작 창 Visual Studio의 시작 창

새 프로젝트 만들기를 클릭하세요. 아래와 같이 새 창이 나타납니다.

C#에서 데이터셋을 CSV로 변환하는 방법, 그림 2: Visual Studio에서 새 프로젝트 생성 Visual Studio에서 새 프로젝트 생성

목록에서 원하는 프로젝트 템플릿을 선택하세요. 다음 버튼을 클릭하면 아래와 같이 새 창이 열립니다.

C#에서 데이터셋을 CSV로 변환하는 방법, 그림 3: 새로 만든 프로젝트 구성 새로 생성된 프로젝트 구성하기

프로젝트 이름, 위치를 선택하고 다음 버튼을 누르세요. 아래와 같이 새 창이 나타납니다.

C#에서 데이터셋을 CSV로 변환하는 방법, 그림 4: .NET Framework 버전 선택 .NET Framework 버전 선택

대상 .NET Framework를 선택하세요. IronXL은 모든 .NET Framework를 지원하므로 필요에 따라 선택하세요. 이 튜토리얼에서는 .NET 7을 사용할 것입니다. 생성 버튼을 클릭하면 아래와 같이 새로운 프로젝트가 생성됩니다.

C#에서 데이터셋을 CSV로 변환하는 방법, 그림 5: Visual Studio에서 새 콘솔 애플리케이션 Visual Studio의 새 콘솔 애플리케이션

이 애플리케이션에서 사용하기 위해 IronXL NuGet 패키지를 설치하세요.

IronXL 설치

NuGet 패키지 관리자 콘솔을 열고 다음 명령어를 입력하세요.

Install-Package IronXl.Excel

아래와 같이 NuGet 패키지가 설치되고 사용 준비가 완료됩니다.

C#에서 데이터셋을 CSV로 변환하는 방법, 그림 6: IronXL 패키지 및 패키지 종속성 설치 IronXL 패키지와 그 패키지 종속성의 설치

이제 데이터셋을 C#에서 CSV 파일로 변환하는 코드를 작성합시다.

이 예제는 SQL 서버 데이터베이스에서 데이터를 불러옵니다. SQL DB에서 데이터셋을 가져온 후, 이 입력 데이터를 사용하여 CSV 파일을 생성할 것입니다.

데이터 테이블 생성

첫 번째 단계는 SQL에서 데이터를 불러오는 것이지만, 원하는 데이터 소스를 사용할 수 있습니다.

이 튜토리얼에서는 다음 데이터를 사용합니다:

C#에서 데이터셋을 CSV로 변환하는 방법, 그림 7: 샘플 데이터로 새 데이터베이스 생성 샘플 데이터로 새로운 데이터베이스 생성

샘플 데이터를 생성하는 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");
    }
}
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");
    }
}
$vbLabelText   $csharpLabel

코드 설명

  • 메서드 GetData()는 SQL Server 데이터베이스에서 데이터를 검색하고 이를 DataTable로 반환합니다.

  • Main 메서드 내에서 IronXL을 사용하여 WorkBook가 생성되고, 데이터가 WorkSheet에 채워집니다.

  • foreach 루프는 DataTable의 행을 반복하여 각 값을 WorkSheet의 새 행에 삽입합니다.

  • 마지막으로, CSV 파일은 IronXL에서 제공하는 SaveAsCsv 함수를 사용하여 저장됩니다.

출력

이 프로그램으로 생성된 CSV 파일은 다음과 같습니다:

C#에서 데이터셋을 CSV로 변환하는 방법, 그림 8: CSV 출력 파일 CSV 출력 파일

CSV 파일이 제대로 생성되어 제공된 입력과 일치함이 명확합니다.

요약

이 글에서는 C#에서 데이터셋으로 CSV 파일을 생성하는 방법을 설명했습니다. 이 라이브러리는 C#을 사용하여 CSV 파일을 읽을 수도 있습니다. SQL Server 데이터베이스에서의 데이터셋은 세 단계로 구성되어 CSV 파일을 생성합니다:

  1. SQL Server에서 데이터 가져오기.
  2. 데이터를 데이터 테이블에 채우기.
  3. 그 데이터 테이블에서 CSV 파일 생성.

이처럼 IronXL을 사용하여 .NET 7에서 CSV 파일을 생성하는 것은 매우 쉽습니다. 프로그램의 성능은 .NET 7과 IronXL로 작성되어 예외적입니다. IronXL은 엑셀 파일 생성, 읽기 및 조작과 같은 다른 유용한 기능도 제공합니다. 자세한 내용은 공식 문서를 참조하십시오.

추가적으로, IronPDF는 개발자들에게 PDF 문서를 이미지로 렌더링하고 PDF에서 텍스트와 콘텐츠를 추출할 수 있는 방법을 제공합니다. 또한, IronPDF는 PDF에서 차트를 렌더링, 바코드를 추가, 비밀번호로 보안을 강화할 수 있습니다.

IronXL의 무료 버전은 개발 목적으로 사용됩니다. 운영 환경에서 응용 프로그램을 배포하려면 무료 체험판 또는 상업용 라이선스를 구입하세요. IronXL은 Iron Suite의 일부로, 다섯 개의 라이브러리로 구성되어 있습니다:

  1. 오늘 탐구할 IronXL.
  2. PDF 파일 생성, 읽기 및 조작을 위한 IronPDF
  3. 이미지에서 텍스트를 추출하기 위한 IronOCR
  4. 바코드를 읽고 생성하기 위한 IronBarcode
  5. 웹사이트에서 구조화된 데이터를 추출하기 위한 IronWebScraper.

이 제품들을 모두 함께 구매하면 두 개 가격으로 얻을 수 있습니다.

자주 묻는 질문

C# 데이터셋을 CSV 파일로 변환하려면 어떻게 해야 하나요?

IronXL 사용하면 C# 데이터셋을 CSV 파일로 변환할 수 있습니다. 먼저 SQL Server 데이터베이스와 같은 소스에서 데이터를 가져와 DataTable에 채웁니다. 그런 다음 IronXL 사용하여 DataTable을 CSV 파일로 내보냅니다.

.NET 환경에서 Excel 파일을 사용하려면 Microsoft Office가 필요한가요?

아니요, IronXL 사용하여 .NET 에서 Excel 파일을 작업하는 데 Microsoft Office가 필요하지 않습니다. IronXL Office 또는 Interop 종속성 없이 독립적으로 작동합니다.

.NET 환경에서 스프레드시트 처리를 위한 IronXL 설치하는 가장 좋은 방법은 무엇인가요?

스프레드시트 처리를 위한 IronXL 설치하는 가장 좋은 방법은 Visual Studio의 NuGet 패키지 관리자 콘솔을 이용하는 것입니다. 다음 명령어를 사용하세요. Install-Package IronXl.Excel

IronXL 스프레드시트 작업 시 생산성을 어떻게 향상시키나요?

IronXL 개발자가 추가 소프트웨어 설치나 종속성 없이 .NET 애플리케이션 내에서 Excel 및 CSV 파일을 빠르고 쉽게 읽고, 생성하고, 편집할 수 있도록 지원하여 생산성을 향상시킵니다.

IronXL 사용하면 어떤 데이터 소스에서든 CSV 파일을 생성할 수 있나요?

네, IronXL 사용하면 어떤 데이터 소스에서든 CSV 파일을 생성할 수 있습니다. 이 문서에서는 SQL Server 데이터베이스를 사용하여 DataTable을 채운 다음 IronXL 사용하여 CSV로 내보내는 방법을 보여줍니다.

IronXL 최신 .NET 버전과 호환됩니까?

네, IronXL .NET 7을 포함한 최신 .NET 버전과 호환되며, 이러한 플랫폼에서 향상된 성능을 제공합니다.

IronXL 스프레드시트 작업에 사용할 때 얻을 수 있는 주요 이점은 무엇입니까?

IronXL 사용하면 Microsoft Office 없이도 스프레드시트를 처리할 수 있다는 점, 모든 .NET 버전을 지원한다는 점, 데이터 세트를 CSV 파일로 효율적으로 변환하는 과정이 간편하다는 점 등 여러 가지 주요 이점을 누릴 수 있습니다.

Iron Suite 란 무엇이며, 어떤 구성품이 포함되어 있나요?

Iron Suite 는 Excel 파일용 IronXL , PDF용 IronPDF , 이미지에서 텍스트 추출용 IronOCR , 바코드용 IronBarcode , 웹 데이터 추출용 IronWebScraper를 포함하는 라이브러리 모음입니다.

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

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

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

Iron Support Team

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