IRONSOFTWAREHOME
IRONXL 사용하여

C#에서 CSV 파일 읽기: 튜토리얼

Curtis Chau
Curtis Chau
Updated: 2026년 6월 28일

다양한 Excel 형식으로 작업할 때 종종 데이터를 읽은 후 프로그램적으로 재구성해야 할 필요가 있습니다. 이 기사에서는 CSV 파일을 읽고, C#에서 IronXL을 사용하여 Excel 스프레드시트에서 데이터를 파싱하는 방법을 배웁니다.

CSV란 무엇인가?

CSV는 간단한 데이터 형식이지만 많은 차이점이 있을 수 있습니다; C# 프로젝트에서 프로그램적으로 읽기 어려운 이유는 여러 구분자를 사용하여 데이터의 행 및 열을 구분하기 때문입니다. 이 기사는 IronXL 라이브러리를 사용하여 CSV 파일을 읽는 방법을 보여줍니다.


1. How to read a CSV File in C#

MVC, ASP.NET 또는 .NET Core에서 CSV 파일을 읽기 위해 IronXL을 사용하기 전에 설치해야 합니다. 이것은 간단한 절차입니다.

  1. Visual Studio에서 프로젝트 메뉴를 선택합니다.
  2. NuGet 패키지 관리
  3. IronXL.Excel 검색
  4. 설치

C#에서 CSV 파일 읽기: 튜토리얼, 그림 1: Visual Studio의 NuGet 패키지 관리자로 IronXL 검색 Visual Studio의 NuGet 패키지 관리자에서 IronXL 검색

C#에서 CSV 파일을 읽어야 할 때, IronXL은 완벽한 도구입니다. 아래 코드 세그먼트에서 보이는 것처럼, 쉼표 또는 다른 구분자가 있는 CSV 파일을 읽을 수 있습니다.

// Load a CSV file and interpret it as an Excel-like workbook
WorkBook workbook = WorkBook.LoadCSV("Weather.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");

// Access the default worksheet in the workbook
WorkSheet ws = workbook.DefaultWorkSheet;

// Save the workbook to a new Excel file
workbook.SaveAs("Csv_To_Excel.xlsx");

산출:

C#에서 CSV 파일 읽기: 튜토리얼, 그림 2: 쉼표 구분자로 구성된 CSV 파일 출력 쉼표 구분자가 있는 CSV 파일 출력

코드 설명:

A WorkBook 객체가 생성됩니다. LoadCSV 메소드는 WorkBook 객체에 대해 CSV의 이름, 형식, 사용된 구분자를 지정하는 데 사용됩니다. 이 경우, 구분자로 쉼표가 사용됩니다.

A WorkSheet 객체가 생성됩니다. 여기서 CSV 파일의 내용이 저장됩니다. 파일은 새 이름과 형식으로 저장됩니다.

C#에서 CSV 파일 읽기: 튜토리얼, 그림 3: Microsoft Excel에서 표시된 데이터 Microsoft Excel에서 표시된 데이터


2. Excel 파일을 위한 IronXL

IronXL을 사용하여 C#에서 Excel 파일 형식을 다루는 간소화된 방법으로 프로젝트에 사용하십시오. IronXL을 직접 다운로드하여 설치할 수 있습니다.. 또한, NuGet Install for Visual Studio를 사용할 수 있습니다. 소프트웨어는 개발을 위해 무료입니다.

dotnet add package IronXL.Excel

3. WorkBook 로드하고 WorkSheet 접근하기

WorkBook은 Excel 파일 및 모든 기능에 대한 전체 접근을 제공하는 IronXL의 클래스입니다. 예를 들어, Excel 파일에 접근하려면 다음 코드를 사용합니다:

// Load the Excel file
WorkBook wb = WorkBook.Load("sample.xlsx"); // Excel file path

Excel 파일의 특정 워크시트에 접근하기 위해 IronXL은 WorkSheet 클래스를 제공합니다.

// Access a specific worksheet by name
WorkSheet ws = wb.GetWorkSheet("Sheet1"); // by sheet name

Excel 워크시트 ws을 얻은 후에는 모든 유형의 데이터를 추출하고 Excel의 모든 기능을 수행할 수 있습니다. Excel 워크시트 ws에서 데이터는 이 과정을 통해 접근할 수 있습니다:

using IronXL;

class Program
{
    static void Main(string[] args)
    {
        // Load the workbook and access a specific worksheet
        WorkBook wb = WorkBook.Load("sample.xlsx");
        WorkSheet ws = wb.GetWorkSheet("Sheet1");

        // Iterate through a range of cells and display their values
        foreach (var cell in ws["A2:A10"])
        {
            Console.WriteLine("Value is: {0}", cell.Text);
        }
        Console.ReadKey();
    }
}

4. DataTable로 Excel 워크시트 읽기

IronXL을 사용하면 Excel WorkSheet을 DataTable로 쉽게 조작할 수 있습니다.

DataTable dt = ws.ToDataTable(true); // Converts the worksheet to a DataTable, using the first row as column names

다음 네임스페이스를 사용하십시오:

using IronXL;
using System.Data;

다음 코드를 작성하십시오:

class Program
{
    static void Main(string[] args)
    {
        // Load the workbook and access a specific worksheet
        WorkBook wb = WorkBook.Load("Weather.xlsx"); // Your Excel file Name
        WorkSheet ws = wb.GetWorkSheet("Sheet1");

        // Parse worksheet into datatable
        DataTable dt = ws.ToDataTable(true); // Parse Sheet1 of sample.xlsx file into DataTable

        // Iterate through rows and columns to display their values
        foreach (DataRow row in dt.Rows) // Access rows
        {
            for (int i = 0; i < dt.Columns.Count; i++) // Access columns of corresponding row
            {
                Console.Write(row[i] + "  ");
            }
            Console.WriteLine();
        }
    }
}

C#에서 CSV 파일 읽기: 튜토리얼, 그림 4: DataTable 객체의 콘솔 출력 DataTable 객체의 콘솔 출력

이 예제에서는 Excel 파일을 어떻게 DataSet으로 사용하는지 살펴보겠습니다.

class Program
{
    static void Main(string[] args)
    {
        // Load the workbook and convert it to a DataSet
        WorkBook wb = WorkBook.Load("sample.xlsx");
        DataSet ds = wb.ToDataSet(); // Parse WorkBook wb into DataSet

        // Iterate through tables to display their names
        foreach (DataTable dt in ds.Tables)
        {
            Console.WriteLine(dt.TableName);
        }
    }
}

C#에서 CSV 파일 읽기: 튜토리얼, 그림 5: DataSet 객체에서 시트 이름 접근 DataSet 객체에서 시트 이름 접근

이제 모든 Excel 시트를 대상으로 각 셀 값을 접근하는 또 다른 예제를 살펴보겠습니다. 여기서, 우리는 Excel 파일의 모든 워크시트에서 각 셀 값을 접근할 수 있습니다.

class Program
{
    static void Main(string[] args)
    {
        // Load the workbook and convert it to a DataSet
        WorkBook wb = WorkBook.Load("Weather.xlsx");
        DataSet ds = wb.ToDataSet(); // Treat the complete Excel file as DataSet

        // Iterate through each table and its rows and columns
        foreach (DataTable dt in ds.Tables) // Treat Excel WorkSheet as DataTable
        {
            foreach (DataRow row in dt.Rows) // Corresponding Sheet's Rows
            {
                for (int i = 0; i < dt.Columns.Count; i++) // Sheet columns of corresponding row
                {
                    Console.Write(row[i] + "  ");
                }
                Console.WriteLine();
            }
        }
    }
}

C#에서 CSV 파일 읽기: 튜토리얼, 그림 6: Dataset 객체의 콘솔 출력 DataSet 객체의 콘솔 출력

5. C# .NET에서 CSV 파싱하기

CSV 파일은 필드에서 줄 바꿈을 처리하는 방식이나 간단한 문자열 분할 접근을 완전히 차단하는 인용 부호로 필드를 감쌀 수 있는 방법에 문제가 많습니다. 최근에 C# .NET에서 CSV를 변환할 때 쉼표 대신 string.Split(',')를 사용하는 사용자 정의 구분자를 지정하는 옵션을 발견했습니다.

6. C# 레코드에서 CSV 데이터 읽기

이 과정은 다음 파일로 리더를 진행시킵니다. 우리는 TryGetField에서 CSV 필드 파일을 읽습니다. 우리는 CSV 파일의 필드 필드를 레코드 필드로 사용하여 읽기 기능을 사용합니다.

// Load a CSV file, specify the file format and delimiter
WorkBook workbook = WorkBook.LoadCSV("Weather.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");

// Access the default worksheet from the workbook
WorkSheet ws = workbook.DefaultWorkSheet;

// Convert worksheet to DataTable    
DataTable dt = ws.ToDataTable(true); // Parse Sheet1 of sample.xlsx file into DataTable

// Iterate through rows and columns to display their values
foreach (DataRow row in dt.Rows) // Access rows
{
    for (int i = 0; i < dt.Columns.Count; i++) // Access columns of corresponding row
    {
        Console.Write(row[i] + "  ");
    }
    Console.WriteLine();
}

C#에서 CSV 파일 읽기: 튜토리얼, 그림 7: DataTable의 콘솔 출력 DataTable에서의 콘솔 출력

7. Excel 파일에서 데이터 가져오기

이제 열려 있는 Excel WorkSheet에서 다양한 방법을 사용하여 쉽게 모든 유형의 데이터를 얻을 수 있습니다. 다음 예제에서는 특정 셀 값을 접근하고 string로 파싱하는 방법을 볼 수 있습니다:

// Access the data by cell addressing
string val = ws["Cell Address"].ToString();

위의 줄에서 ws는 2단계에서 정의된 WorkSheet입니다. 이것은 '간단한' 방법이지만, 더 많은 내용을 읽고 Excel 파일 데이터를 접근하는 다양한 예제를 볼 수 있습니다.

8. How to Parse Excel Files in C#

응용 프로그램 빌드를 위해 Excel 스프레드시트를 사용할 때, 우리는 종종 데이터를 기반으로 결과를 분석하고 C# 내에서 Excel 파일 데이터를 필수 형식으로 구문 분석하여 올바른 결과를 얻어야 합니다. IronXL을 사용하여 C# 환경에서 서로 다른 형식으로 데이터를 구문 분석하는 것이 쉽게 이루어집니다; 아래의 단계를 참조하십시오.

using IronXL;

class Program
{
    static void Main(string[] args)
    {
        // Load the workbook and access a specific worksheet
        WorkBook wb = WorkBook.Load("sample.xlsx");
        WorkSheet ws = wb.GetWorkSheet("Sheet1");

        // Parse Excel cell value into string
        string str_val = ws["B3"].Value.ToString();

        // Parse Excel cell value into Int32
        Int32 int32_val = ws["G3"].Int32Value;

        // Parse Excel cell value into Decimal
        decimal decimal_val = ws["E5"].DecimalValue;

        // Output parsed values to the console
        Console.WriteLine("Parse B3 Cell Value into String: {0}", str_val);
        Console.WriteLine("Parse G3 Cell Value into Int32: {0}", int32_val);
        Console.WriteLine("Parse E5 Cell Value into decimal: {0}", decimal_val);

        Console.ReadKey();
    }
}

9. Excel 데이터를 숫자 및 불리언 값으로 구문 분석하는 방법

이제 Excel 파일 데이터를 구문 분석하는 방법으로 이동합니다. 먼저 숫자 Excel 데이터를 처리하는 방법을 살펴보고, 이를 필요한 형식으로 구문 분석하는 방법을 살펴보겠습니다.

C#에서 CSV 파일 읽기: 튜토리얼, 그림 8: 각 데이터 유형의 요약 테이블 각 데이터 유형에 대한 요약 테이블

class Program
{
    static void Main(string[] args)
    {
        // Load the workbook and access a specific worksheet
        WorkBook wb = WorkBook.Load("sample.xlsx");
        WorkSheet ws = wb.GetWorkSheet("Sheet1");

        // Parse Excel cell value into string
        string str_val = ws["B3"].Value.ToString();

        // Parse Excel cell value into Int32
        Int32 int32_val = ws["G3"].Int32Value;

        // Parse Excel cell value into Decimal
        decimal decimal_val = ws["E5"].DecimalValue;

        // Output parsed values to the console
        Console.WriteLine("Parse B3 Cell Value into String: {0}", str_val);
        Console.WriteLine("Parse G3 Cell Value into Int32: {0}", int32_val);
        Console.WriteLine("Parse E5 Cell Value into decimal: {0}", decimal_val);

        Console.ReadKey();
    }
}

이 코드는 다음 출력을 표시합니다:

C#에서 CSV 파일 읽기: 튜토리얼, 그림 9: 올바른 데이터 유형의 콘솔 출력 올바른 데이터 유형으로 콘솔 출력

여기서 우리는 sample.xlsx Excel 파일의 값을 볼 수 있습니다:

C#에서 CSV 파일 읽기: 튜토리얼, 그림 10: Excel에서 올바른 데이터 유형 표시 Excel에서 올바른 데이터 유형 표시

Excel 파일 데이터를 Boolean 데이터 유형으로 파싱하기 위해 IronXL은 BoolValue 기능을 제공합니다. 다음과 같이 사용할 수 있습니다:

// Access a cell value as a boolean
bool Val = ws["Cell Address"].BoolValue;

10. Excel 파일을 C# 컬렉션에 파싱하는 방법

class Program
{
    static void Main(string[] args)
    {
        // Load the workbook and access a specific worksheet
        WorkBook wb = WorkBook.Load("sample.xlsx");
        WorkSheet ws = wb.GetWorkSheet("Sheet1");

        // Convert a range into an array
        var array = ws["B6:F6"].ToArray();

        // Get the count of items in the array
        int item = array.Count();

        // Get the first item as a string
        string total_items = array[0].Value.ToString();

        // Output information about the array to the console
        Console.WriteLine("First item in the array: {0}", item);
        Console.WriteLine("Total items from B6 to F6: {0}", total_items);

        Console.ReadKey();
    }
}

10.1 Excel WorkSheet을 DataTable로 파싱하는 방법

IronXL의 뛰어난 기능 중 하나는 특정 Excel WorkSheet을 쉽게 DataTable로 변환할 수 있다는 것입니다. 이 목적을 위해 IronXL의 .ToDataTable() 기능을 다음과 같이 사용할 수 있습니다:

class Program
{
    static void Main(string[] args)
    {
        // Load the workbook and access a specific worksheet
        WorkBook wb = WorkBook.Load("sample.xlsx");
        WorkSheet ws = wb.GetWorkSheet("Sheet1");

        // Parse Sheet1 of sample.xlsx file into DataTable
        // Setting 'true' makes the first row in Excel as the column names in DataTable
        DataTable dt = ws.ToDataTable(true);
    }
}

10.2 Excel 파일을 DataSet으로 파싱하는 방법

Excel 파일 전체를 DataSet으로 파싱하고자 한다면, 이를 위해 IronXL의 .ToDataSet() 기능을 사용할 수 있습니다.

class Program
{
    static void Main(string[] args)
    {
        // Load an entire workbook into a DataSet
        WorkBook wb = WorkBook.Load("sample.xlsx");

        // Convert workbook to DataSet
        DataSet ds = wb.ToDataSet();

        // We can also get a DataTable from the DataSet which corresponds to a WorkSheet
        DataTable dt = ds.Tables[0];
    }
}

10.3 특정 범위 내에서 Excel 데이터 읽기

IronXL은 특정 범위 내에서 Excel 파일 데이터를 읽기 위한 지능형 방법을 제공합니다. 범위는 행과 열 모두에 적용할 수 있습니다.

class Program
{
    static void Main(string[] args)
    {
        // Load the workbook and access a specific worksheet
        WorkBook wb = WorkBook.Load("sample.xlsx");
        WorkSheet ws = wb.GetWorkSheet("Sheet1");

        // Get specified range values by loop
        foreach (var item in ws["B3:B8"])
        {
            Console.WriteLine("Value is: {0}", item);
        }
        Console.ReadKey();
    }
}

위의 코드는 다음 출력을 표시합니다:

C#에서 CSV 파일 읽기: 튜토리얼, 그림 11: 범위 B3:B8의 모든 값에 접근하기 위한 콘솔 출력 B3:B8 범위의 모든 값에 대한 콘솔 출력

Excel 파일 sample.xlsx의 값:

C#에서 CSV 파일 읽기: 튜토리얼, 그림 12: sample.xlsx의 데이터 표시 sample.xlsx의 데이터 표시

또한, IronXL은 스타일 및 테두리, 수학 함수, 조건부 서식 또는 사용 가능한 데이터로부터 차트를 생성하는 등의 많은 Excel 메서드와도 호환됩니다.

11. Excel 파일에서 Boolean 데이터를 읽는 방법

응용 프로그램 개발에서는 Excel 파일의 Boolean 데이터 유형을 기반으로 결정을 내려야 합니다.

class Program
{
    static void Main(string[] args)
    {
        // Load the workbook and access a specific worksheet
        WorkBook wb = WorkBook.Load("sample.xlsx");
        WorkSheet ws = wb.GetWorkSheet("Sheet1");
        
        // Traverse a range and output boolean values
        foreach (var item in ws["G1:G10"])
        {
            Console.WriteLine("Condition is: {0}", item.BoolValue);
        }
        Console.ReadKey();
    }
}

이로부터 우리는 다음 출력을 얻습니다:

C#에서 CSV 파일 읽기: 튜토리얼, 그림 13: Boolean 데이터 얻기의 콘솔 출력 Boolean 데이터 가져오기에서의 콘솔 출력

그리고 C1에서 C10까지의 값이 있는 Excel 파일 sample.xlsx:

C#에서 CSV 파일 읽기: 튜토리얼, 그림 14: 콘솔 출력과 비교하기 위한 Excel 샘플 콘솔 출력과 비교를 위한 Excel 샘플

12. 전체 Excel 워크시트를 읽는 방법

행과 열 인덱스를 사용하여 전체 Excel 워크시트를 읽는 것은 간단합니다. 이 목적을 위해 우리는 모든 행을 순회하기 위한 루프 하나와 특정 행의 모든 열을 순회하기 위한 두 번째 루프를 사용합니다. 그런 다음 전체 Excel 워크시트 내의 모든 셀 값을 쉽게 얻을 수 있습니다.

class Program
{
    static void Main(string[] args)
    {
        // Load the workbook and access a specific worksheet
        WorkBook wb = WorkBook.Load("Weather.xlsx"); // Your Excel File Name
        WorkSheet ws = wb.GetWorkSheet("Sheet1");

        // Traverse all rows of Excel WorkSheet
        for (int i = 0; i < ws.Rows.Count(); i++)
        {
            // Traverse all columns of specific Row
            for (int j = 0; j < ws.Columns.Count(); j++)
            {
                // Get the values
                string val = ws.Rows[i].Columns[j].Value.ToString();
                Console.WriteLine("Value of Row {0} and Column {1} is: {2}", i, j, val);
            }
        }
        Console.ReadKey();
    }
}

C#에서 CSV 파일 읽기: 튜토리얼, 그림 15: 모든 값 읽기의 콘솔 출력 모든 값 읽기에서의 콘솔 출력

13. Interop 없이 Excel 파일 읽기

IronXL은 C#과 .NET을 위한 Excel 라이브러리로, 개발자가 Microsoft.Office.Interop.Excel을 사용하지 않고도 XLS 및 XLSX 문서에서 Excel 데이터를 읽고 편집할 수 있도록 해줍니다.

이 API는 다음을 위해 Excel 파일을 직관적으로 생성, 읽기, 조작, 저장 및 내보낼 수 있게 해줍니다:

.NET Framework 4.5+ .NET Core 2+ .NET Standard Xamarin Windows Mobile Mono & Azure Cloud Hosting Blazor .NET MAUI

다음 네임스페이스를 추가하세요:

using IronXL;
using System;
using System.Linq;

이제 메인 함수 내에 다음 코드를 작성하세요.

class Program
{
    static void Main(string[] args)
    {
        // Load an Excel file and access the first worksheet
        WorkBook workbook = WorkBook.Load("Weather.xlsx");
        WorkSheet sheet = workbook.WorkSheets.First();

        // Select cells easily in Excel notation and return the calculated value
        int cellValue = sheet["A2"].IntValue;

        // Read from ranges of cells elegantly
        foreach (var cell in sheet["A2:A10"])
        {
            Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
        }
    }
}

C#에서 CSV 파일 읽기: 튜토리얼, 그림 16: 각 셀의 콘솔 출력 각 셀의 콘솔 출력

IronXL은 또한 ASP.NET, MVC, Windows, macOS, Linux, iOS 및 Android 모바일 응용 프로그램 개발을 완벽하게 지원합니다.

14. 결론과 IronXL 특별 혜택

C#에서의 CSV 파싱 외에도, IronXL은 단 두 줄의 코드로 CSV 파일을 Excel로 변환합니다!

C# 또는 VB.NET을 사용하면 Interop이 필요 없이 IronXL의 Excel API를 매우 쉽게 사용할 수 있습니다. Excel 스프레드시트를 읽고, 편집하고, 생성하거나 XLS/XLSX/CSV/TSV와 같은 다른 Excel 형식과 작업할 수 있습니다. 여러 프레임워크 지원을 통해 두 개 가격으로 5개의 제품을 구매할 수 있습니다. 추가 정보를 보려면 가격 페이지를 클릭하십시오.

C#에서 CSV 파일 읽기: 튜토리얼, 그림 17: Iron Suite의 5개 제품 Iron Suite의 5개 제품

Curtis Chau
기술 문서 작성자

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

...
더 읽어보기

관련 기사

Key in blue circle

무료 30일 체험 키를 즉시 받으세요.

Your trial license will be sent to your email address

제한 없음. 100% 무제한 이용. 신용카드 불필요.

bullet_checked신용카드나 계정 생성은 필요하지 않습니다.제한 없음. 100% 무제한 이용. 신용카드 불필요.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
무료 라이브 데모를 예약하세요
Booking Badge

전 세계 수백만 엔지니어들이 신뢰하는 제품입니다.

Iron Software의 고객 로고
부담 없는 무료 상담을 받아보세요
아래 양식을 작성하시거나 sales@ironsoftware.com으로 이메일을 보내주세요.
고객님의 정보는 항상 비밀로 유지됩니다.
전 세계 수백만 엔지니어들이 신뢰하는 제품입니다.
Iron Software의 고객 로고
지금 바로 30일 무료 체험판 키를 받으세요.
신용카드나 계정 생성은 필요하지 않습니다.