C#에서 CSV 파일 구문 분석

Muhammad Maisam Abbas 2024년2월16일
  1. C#에서TextFieldParser클래스를 사용하여 CSV 파일 구문 분석
  2. C#의FileHelpers라이브러리를 사용하여 CSV 파일 구문 분석
C#에서 CSV 파일 구문 분석

이 자습서에서는 C#에서 CSV 파일을 구문 분석하는 방법에 대해 설명합니다.

C#에서TextFieldParser클래스를 사용하여 CSV 파일 구문 분석

TextFieldParser클래스를 사용하려면 C# 코드에서Microsoft.VisualBasic.dll을 참조해야합니다. TextFieldParser클래스에는 C#에서 구조화 된 텍스트 파일을 구문 분석하기위한 여러 메소드가 포함되어 있습니다. TextFieldParser클래스 내의SetDelimiters()함수를 사용하여 구분 기호를,로 설정하여TextFieldParser클래스로 CSV 파일을 읽을 수 있습니다. 다음 코드 예제는 C#에서TextFieldParser클래스를 사용하여 CSV 파일을 구문 분석하는 방법을 보여줍니다.

using System;
using Microsoft.VisualBasic.FileIO;

namespace parse_csv {
  class Program {
    static void Main(string[] args) {
      using (TextFieldParser textFieldParser = new TextFieldParser(@"C:\File\Sheet1.csv")) {
        textFieldParser.TextFieldType = FieldType.Delimited;
        textFieldParser.SetDelimiters(",");
        while (!textFieldParser.EndOfData) {
          string[] rows = textFieldParser.ReadFields();
        }
      }
    }
  }
}

위의 코드에서 생성자에 CSV 파일 경로를 지정하여TextFieldParser클래스의textFieldParser인스턴스를 초기화했습니다. 그런 다음textFieldParser.TextFieldType = FieldType.Delimited로 구분되도록 텍스트 필드 유형을 설정하고textFieldParser.SetDelimiter(',')함수를 사용하여 구분자로,를 설정합니다. 그런 다음while루프를 사용하여textFieldParser.EndofData로 끝까지 CSV 파일을 읽었습니다. ReadFields()함수를 사용하여 문자열 배열 안에 데이터를 저장했습니다.

C#의FileHelpers라이브러리를 사용하여 CSV 파일 구문 분석

FileHelpers라이브러리는 C#의 파일, 스트림 및 문자열에 데이터를 읽고 쓰는 데 사용됩니다. 타사 라이브러리이며.NET프레임 워크와 함께 사전 설치되지 않습니다. Visual Studio IDE의 NuGet 패키지 관리자에서 검색하여 쉽게 설치할 수 있습니다. FileHelpersEngine클래스를 사용하여 C#의 CSV 파일에서 데이터를 구문 분석 할 수 있습니다. FileHelperEngine클래스는 파일의 데이터를 C#의 클래스 개체로 가져옵니다. 따라서 먼저 파일에서 데이터를 보관할 수있는 모델 클래스를 만들어야합니다. 클래스에는 CSV 파일의 열을 나타내는 필드가 포함됩니다. 여기서[DelimitedRecord(",")]를 사용하여,가 구분 기호로 사용되도록 지정할 수 있습니다. ReadFile(path)함수를 사용하여 지정된 경로의 파일에서 클래스 객체 배열 내부의 데이터를 읽을 수 있습니다. 다음 코드 예제는 C#에서FileHelpers라이브러리를 사용하여 CSV 파일을 구문 분석하는 방법을 보여줍니다.

using FileHelpers;
using System;
namespace parse_csv {
  [DelimitedRecord(",")]
  public class Record {
    public string Name;

    public string Age;
  }
  class Program {
    static void Main(string[] args) {
      var fileHelperEngine = new FileHelperEngine<Record>();
      var records = fileHelperEngine.ReadFile(@"C:\File\records.csv");

      foreach (var record in records) {
        Console.WriteLine(record.Name);
        Console.WriteLine(record.Age);
      }
    }
  }
}

출력:

Name
Age
MMA
22
SDA
19
SHA
11

위 코드에서C:\File\records.csv파일 내부의 데이터를 읽고 C#의FileHelpers라이브러리를 사용하여Record클래스의 객체 배열에 저장합니다.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

관련 문장 - Csharp CSV