푸터 콘텐츠로 바로가기
IRONXL 사용하여
C#에서 CSV 파일을 데이터 테이블로 가져오는 방법 | IronXL

C#에서 CSV 파일을 데이터 테이블로 가져오는 방법

C#에서 DataTable로 CSV(콤마로 구분된 값) 파일을 가져오는 초보자용 튜토리얼에 오신 것을 환영합니다. IronXL을 사용합니다. 이 가이드는 따라하기 쉬운 접근 방식을 제공하여 C# 초보자라도 이 과정을 간단히 이해할 수 있도록 합니다. 환경 설정에서부터 소스 코드 작성까지 모든 단계를 다룰 것입니다. 이 튜토리얼이 끝나면 파일 리더와 IronXL을 사용하여 C#에서 CSV 데이터를 DataTable로 변환하고, DataTable 열을 관리하며 CSV 문서의 다양한 측면을 처리하는 방법에 대한 명확한 이해를 갖게 될 것입니다.

필수 조건

시작하기 전에, 다음을 준비하세요:

  • C#에 대한 기본 지식
  • 로컬 머신에 설치된 Visual Studio
  • NuGet 패키지 매니저를 통해 얻을 수 있는 IronXL 라이브러리

기초 이해하기

CSV 파일이란?

CSV 파일(Comma Separated Values 파일)은 특정 구조를 사용하여 표 형식 데이터를 배열하는 평문 파일의 일종입니다. CSV는 간단하고, 작으며 여러 플랫폼에서 작동하기 때문에 데이터 교환에 일반적인 형식입니다. CSV 파일에서 데이터는 쉼표로 구분되고, 각 새로운 행은 새로운 행을 나타내며, 첫 번째 행에 열 제목이 종종 포함됩니다.

Understanding DataTables in C#

DataTable은 C#의 ADO.NET 라이브러리의 일부로, 메모리 내의 데이터를 단일 테이블로 나타냅니다. 행과 열로 구성되며, 각 열은 서로 다른 데이터 유형일 수 있습니다. DataTable은 매우 유연하며 구조화된 형식으로 데이터를 나타낼 수 있어서 CSV 파일 데이터를 처리하는 데 이상적입니다.

프로젝트 설정하기

단계 1: 새로운 C# 프로젝트 만들기

  1. Visual Studio를 엽니다.
  2. 파일 > 새로 만들기 > 프로젝트를 선택합니다.
  3. C# 콘솔 또는 Windows Forms 애플리케이션을 선택하고 적절한 이름을 지정합니다.

단계 2: IronXL 설치

IronXL은 C#에서 Excel 및 CSV 파일을 작업할 수 있는 강력한 라이브러리입니다. 사용하려면 NuGet 패키지 매니저를 통해 설치해야 합니다. Visual Studio에서:

  1. 도구 > NuGet 패키지 매니저 > 솔루션용 NuGet 패키지 관리로 이동합니다.
  2. IronXl.Excel을 검색합니다.

    C#에서 CSV를 데이터테이블로 가져오는 방법: 그림 1 - IronXL

  3. 프로젝트에 패키지를 설치합니다.

IronXL로 CSV 파일을 DataTables로 읽기

단계 1: 환경 설정

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

using 문은 우리의 작업에 필요한 네임스페이스를 포함합니다.

단계 2: CSV를 가져오는 메서드 만들기

정적 메서드 ImportCsvToDataTable을 가진 CsvToDataTable 클래스를 정의합니다. 이 메서드는 CSV 파일을 DataTable로 변환하는 책임을 집니다.

public class CsvToDataTable
{
    public static DataTable ImportCsvToDataTable(string filePath)
    {
        // Code snippet to import CSV will be placed here
        return null; // Placeholder return statement
    }
}
public class CsvToDataTable
{
    public static DataTable ImportCsvToDataTable(string filePath)
    {
        // Code snippet to import CSV will be placed here
        return null; // Placeholder return statement
    }
}
$vbLabelText   $csharpLabel

단계 3: CSV 파일 로드

ImportCsvToDataTable 메서드 내에서 CSV 파일 로드를 시작하세요. IronXL은 이를 수행하는 간단한 방법을 제공합니다:

// Load the CSV file
WorkBook workbook = WorkBook.LoadCSV(filePath);
// Load the CSV file
WorkBook workbook = WorkBook.LoadCSV(filePath);
$vbLabelText   $csharpLabel

WorkBook.LoadCSV는 CSV 파일을 로드하는 IronXL의 메서드입니다. 여기서 filePath는 CSV 파일의 경로입니다.

단계 4: CSV를 DataTable로 변환

로드된 CSV 데이터를 DataTable로 변환하세요. 이 단계는 데이터를 쉽게 변조하고 C# 애플리케이션 내에서 표시할 수 있는 형식으로 변환하는 데 중요합니다.

// Get the first worksheet
WorkSheet sheet = workbook.DefaultWorkSheet;
// Convert CSV worksheet to DataTable
DataTable dataTable = sheet.ToDataTable();
return dataTable;
// Get the first worksheet
WorkSheet sheet = workbook.DefaultWorkSheet;
// Convert CSV worksheet to DataTable
DataTable dataTable = sheet.ToDataTable();
return dataTable;
$vbLabelText   $csharpLabel

이 스니펫은 CSV 데이터를 DataTable로 변환합니다. DefaultWorkSheet는 CSV 파일의 경우 전체 CSV 데이터에 해당하는 워크북의 첫 번째 시트를 가져옵니다. ToDataTable 메서드는 CSV 데이터와 CSV 파일의 첫 번째 행에 있는 경우 열 제목 행을 포함하여, 강력하게 CSV 데이터를 DataTable 구조로 매핑하는 IronXL의 강력한 기능입니다.

단계 5: 애플리케이션에서 메서드 활용하기

이제 애플리케이션에서 ImportCsvToDataTable 메서드를 사용하세요. 예를 들어, 이 메소드는 애플리케이션이 시작될 때나 사용자가 CSV 파일을 업로드할 때 호출할 수 있습니다.

// Usage
string csvFilePath = "csvfile.csv";
DataTable dataTable = CsvToDataTable.ImportCsvToDataTable(csvFilePath);
// Usage
string csvFilePath = "csvfile.csv";
DataTable dataTable = CsvToDataTable.ImportCsvToDataTable(csvFilePath);
$vbLabelText   $csharpLabel

이 코드 스니펫은 ImportCsvToDataTable 메소드를 호출하는 방법을 보여줍니다. "csvfile.csv"를 실제 CSV 파일의 파일 경로로 교체하세요.

6단계: 출력 데이터테이블 작업하기

DataTable을 얻은 후에는 사용자 인터페이스에 데이터를 표시하거나, 데이터를 필터링하거나 처리하는 등 다양한 작업을 수행할 수 있습니다. 다음은 몇 가지 예입니다:

콘솔 애플리케이션에서 데이터 표시하기

foreach (DataRow row in dataTable.Rows)
{
    foreach (var item in row.ItemArray)
    {
        Console.Write($"{item} ");
    }
    Console.WriteLine();
}
foreach (DataRow row in dataTable.Rows)
{
    foreach (var item in row.ItemArray)
    {
        Console.Write($"{item} ");
    }
    Console.WriteLine();
}
$vbLabelText   $csharpLabel

이 코드는 DataTable의 각 행과 열을 반복하며 콘솔에 데이터를 출력합니다.

데이터 필터링하기

DataTable에서 LINQ를 사용하여 데이터를 필터링할 수 있습니다. 예를 들어, 특정 열이 조건을 만족하는 행을 선택하려면:

var filteredRows = dataTable.AsEnumerable()
                            .Where(row => row.Field<string>("ColumnName") == "SomeValue");
var filteredRows = dataTable.AsEnumerable()
                            .Where(row => row.Field<string>("ColumnName") == "SomeValue");
$vbLabelText   $csharpLabel

"ColumnName""SomeValue"를 필터링할 열 이름과 값으로 교체하세요.

완전한 코드 스니펫

프로젝트에서 사용할 수 있는 완전한 소스 코드는 다음과 같습니다:

using IronXL;
using System;
using System.Data;
using System.IO;

public class CsvToDataTable
{
    public static DataTable ImportCsvToDataTable(string filePath)
    {
        // Check if the file exists
        if (!File.Exists(filePath))
        {
            throw new FileNotFoundException($"The file at {filePath} was not found.");
        }

        // Load the CSV file
        WorkBook workbook = WorkBook.LoadCSV(filePath);
        // Get the first worksheet
        WorkSheet sheet = workbook.DefaultWorkSheet;
        // Convert the worksheet to DataTable
        DataTable dataTable = sheet.ToDataTable();
        return dataTable;
    }
}

class Program
{
    static void Main(string[] args)
    {
        // Usage
        try
        {
            string filePath = "sample_data.csv"; // CSV file path
            DataTable dataTable = CsvToDataTable.ImportCsvToDataTable(filePath);
            foreach (DataRow row in dataTable.Rows)
            {
                foreach (var item in row.ItemArray)
                {
                    Console.Write($"{item} ");
                }
                Console.WriteLine();
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine($"An error occurred: {ex.Message}");
        }
    }
}
using IronXL;
using System;
using System.Data;
using System.IO;

public class CsvToDataTable
{
    public static DataTable ImportCsvToDataTable(string filePath)
    {
        // Check if the file exists
        if (!File.Exists(filePath))
        {
            throw new FileNotFoundException($"The file at {filePath} was not found.");
        }

        // Load the CSV file
        WorkBook workbook = WorkBook.LoadCSV(filePath);
        // Get the first worksheet
        WorkSheet sheet = workbook.DefaultWorkSheet;
        // Convert the worksheet to DataTable
        DataTable dataTable = sheet.ToDataTable();
        return dataTable;
    }
}

class Program
{
    static void Main(string[] args)
    {
        // Usage
        try
        {
            string filePath = "sample_data.csv"; // CSV file path
            DataTable dataTable = CsvToDataTable.ImportCsvToDataTable(filePath);
            foreach (DataRow row in dataTable.Rows)
            {
                foreach (var item in row.ItemArray)
                {
                    Console.Write($"{item} ");
                }
                Console.WriteLine();
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine($"An error occurred: {ex.Message}");
        }
    }
}
$vbLabelText   $csharpLabel

이 코드를 Program.cs 파일에서 사용할 수 있습니다. 프로덕션 환경에서 작업 중이라면 IronXL의 라이센스를 추가하는 것을 잊지 마십시오.

코드 출력

코드를 실행하면 CSV 파일을 로드하고 그 데이터를 DataTable로 가져옵니다. 그 후, 콘솔에서 DataTable 열의 내용을 보여줍니다. 데이터가 올바르게 DataTable로 가져왔는지 확인하는 데 도움이 됩니다.

C#에서 CSV를 데이터테이블로 가져오는 방법: 그림 2 - 출력

다양한 시나리오 처리하기

실제 시나리오에서 CSV 파일은 형식과 구조가 크게 다를 수 있습니다. 이러한 변화를 처리하여 애플리케이션을 견고하고 다용도로 사용할 수 있도록 보장하는 것이 중요합니다. IronXL을 사용하여 CSV 데이터를 DataTable로 가져올 때 다양한 시나리오를 관리하는 방법을 확장해 봅시다.

다른 구분자를 처리하기

CSV 파일의 기본 구분자는 쉼표입니다. 그러나 CSV 파일은 항상 쉼표를 사용하여 값을 구분하지 않을 수 있습니다. 때로는 세미콜론, 탭 또는 다른 문자가 구분자로 사용됩니다. IronXL에서 이를 처리하려면:

사용자 지정 구분자 지정: CSV 파일을 로드하기 전에 파일의 구분자를 지정할 수 있습니다. 예를 들어, 파일에서 세미콜론(;)을 사용하는 경우 다음과 같이 설정할 수 있습니다:

WorkBook workbook = WorkBook.LoadCSV(filePath, listDelimiter: ";");
WorkBook workbook = WorkBook.LoadCSV(filePath, listDelimiter: ";");
$vbLabelText   $csharpLabel

큰 CSV 파일 처리하기

큰 CSV 파일을 처리할 때는 메모리 사용량과 성능을 고려하는 것이 중요합니다. IronXL은 대용량 파일을 메모리에 한 번에 로드하지 않고도 효율적으로 처리할 수 있는 방법을 제공합니다. IronXL에서 제공하는 스트리밍 API를 활용하여 파일을 청크 단위로 읽거나 메모리 사용량을 효과적으로 관리할 수 있습니다.

결론

C#에서 IronXL을 사용하여 CSV 데이터를 DataTable로 가져오는 것은 간단합니다. 애플리케이션의 데이터 조작 기능을 향상시키며 CSV 파일을 효율적으로 처리할 수 있게 해줍니다. 이 튜토리얼에 나와 있는 단계를 통해 초보자도 쉽게 이러한 기능을 자신의 C# 프로젝트에 통합할 수 있습니다.

IronXL은 사용자들이 그 기능을 탐색할 수 있도록 무료 체험판을 제공합니다. 보다 고급 기능과 지원을 원하는 사람들을 위해 라이센싱 옵션이 제공됩니다.

자주 묻는 질문

C#에서 CSV 데이터를 DataTable로 가져오는 방법은 무엇인가요?

C#에서 CSV 데이터를 DataTable로 가져오려면 IronXL의 WorkBook.LoadCSV 메서드를 사용하여 CSV 파일을 로드한 다음 ToDataTable 메서드를 사용하여 DataTable로 변환하면 됩니다.

IronXL 사용하기 위해 Visual Studio 프로젝트를 설정하는 데 필요한 단계는 무엇입니까?

IronXL 사용하기 위한 Visual Studio 프로젝트를 설정하려면 NuGet 패키지 관리자에서 도구 > NuGet 패키지 관리자 > 솔루션용 NuGet 패키지 관리로 이동하여 IronXL 패키지 IronXL 설치하세요. 그런 다음 프로젝트에 추가합니다.

IronXL 구분자가 서로 다른 CSV 파일을 처리할 수 있습니까?

예, IronXL WorkBook.LoadCSV 메서드의 listDelimiter 매개변수를 사용하여 사용자 지정 구분 기호를 지정함으로써 다양한 구분 기호를 사용하는 CSV 파일을 처리할 수 있습니다.

CSV 파일을 불러올 때 '파일을 찾을 수 없음' 오류가 발생하면 어떻게 해야 하나요?

'파일을 찾을 수 없음' 오류가 발생하는 경우 파일 경로가 올바른지 확인하십시오. File.Exists(filePath) 를 사용하여 파일 존재 여부를 확인하고 이러한 오류를 방지할 수 있습니다.

C#에서 대용량 CSV 파일을 효율적으로 관리하는 방법은 무엇인가요?

IronXL 대용량 CSV 파일을 효율적으로 관리하기 위해 파일을 청크 단위로 읽거나 스트리밍 API를 사용하는 등의 기능을 제공하여 메모리 사용량과 성능을 최적화합니다.

CSV 데이터를 DataTable로 변환하면 어떤 이점이 있나요?

CSV 데이터를 DataTable로 변환하면 구조화된 데이터 조작이 가능해지므로 C# 애플리케이션 내에서 데이터를 더 쉽게 처리, 필터링 및 표시할 수 있습니다.

C# 콘솔 애플리케이션에서 DataTable의 내용을 어떻게 표시할 수 있나요?

C# 콘솔 애플리케이션에서 DataTable의 내용을 표시하려면 중첩 루프를 사용하여 각 DataRow 반복하고 각 항목을 출력하여 콘솔에 데이터를 표시합니다.

CSV 파일이란 무엇이며 왜 유용한가요?

CSV 파일, 즉 쉼표로 구분된 값 파일은 데이터를 쉼표로 구분한 일반 텍스트 파일입니다. 단순하고 다양한 애플리케이션과 호환되기 때문에 데이터 교환에 널리 사용됩니다.

CSV 파일을 DataTable로 가져오는 방법에 대한 튜토리얼을 따라하기 위해 필요한 사전 조건은 무엇인가요?

이 튜토리얼을 따라하려면 C#에 대한 기본적인 이해, 컴퓨터에 설치된 Visual Studio, 그리고 NuGet 패키지 관리자를 통해 설치할 수 있는 IronXL 라이브러리가 필요합니다.

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

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

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

Iron Support Team

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