728x90
728x170
CsvHelper 사용하는 방법입니다.
이를 사용하면 CSV 문자열에 ,(콤마)나 "(쌍따옴표), 개행문자 등도 처리할 수 있습니다.
1. 'CsvHelper' Nuget 패키지 설치
2. CSV 구조 정의
public class Employee
{
[Name("이름")]
public string? Name { get; set; }
[Name("이메일")]
public string? Email { get; set; }
[Name("전화번호")]
public string? PhoneNumber { get; set; }
[Name("나이")]
public int Age { get; set; }
}
3. CSV 파일 쓰기
List<Employee> datas = new List<Employee>
{
new Employee { Name = "강,감찬", Email = "kang@naver.com", PhoneNumber = "010-1111-2222", Age = 23 },
new Employee { Name = "이순\"신", Email = "lee@daum.com", PhoneNumber = "010-3333-5555", Age = 47 },
new Employee { Name = "홍길동", Email = "honggil@gmail.com\r\n", PhoneNumber = "010-6666-7777", Age = 36 }
};
using (var streamWriter = new StreamWriter("data.csv"))
{
using (var csvWriter = new CsvWriter(streamWriter, CultureInfo.InvariantCulture))
{
csvWriter.WriteRecords(datas);
}
}
결과
4. CSV 파일 로드하기
using (var streamReader = new StreamReader("data.csv"))
{
using (var csvReader = new CsvReader(streamReader, CultureInfo.InvariantCulture))
{
List<Employee> records = csvReader.GetRecords<Employee>().ToList();
}
}
결과
5. CSV 내용 추가하기
List<Employee> addDatas = new List<Employee>
{
new Employee { Name = "세종대왕", Email = "sejoing@gmail.com", PhoneNumber = "010-8888-9999", Age = 51 }
};
CsvConfiguration csvConfiguration = new CsvConfiguration(CultureInfo.InvariantCulture);
csvConfiguration.HasHeaderRecord = false;
using (var fileStream = File.Open("data.csv", FileMode.Append))
{
using (var streamWriter = new StreamWriter(fileStream))
{
using (var csvWriter = new CsvWriter(streamWriter, csvConfiguration))
{
csvWriter.WriteRecords(addDatas);
}
}
}
결과
[Source]
https://github.com/kei-soft/CsvHelperTest
728x90
그리드형
'C#' 카테고리의 다른 글
[C#] Public IP 주소 가져오기 (0) | 2023.08.28 |
---|---|
[C#] ArraySegment<T> Struct (0) | 2023.08.27 |
[C#/Dapper] 42601: syntax error at or near “$1″ 에러 (0) | 2023.07.16 |
[C#/NATS] nats streaming server (0) | 2023.07.10 |
[C#] CS 단에서 Matplotlib 호출하기 (0) | 2023.07.09 |