- ติดตั้ง CsvHelper ผ่าน NuGet
- เขียนไฟล์ CSV
- อ่านไฟล์ CSV
1.ติดตั้ง CsvHelper ผ่าน NuGet
PM> Install-Package CsvHelper -Version 19.0.0
2.เขียนไฟล์ CSV
static void Main(string[] args) { try { log.Info("*********************************"); log.Info("************* BEGIN *************"); log.Info(AppDomain.CurrentDomain.FriendlyName); var records = new List<Foo> { new Foo { Id = 1, Name = "one" }, new Foo { Id = 2, Name = "two" }, }; records.Add(new Foo { Id = 3, Name = "three" }); Foo foo = new Foo(); foo.Id = 4; foo.Name = "four"; records.Add(foo); using (var writer = new StreamWriter(string.Format("{0}/file.csv", AppDomain.CurrentDomain.BaseDirectory))) using (var csv = new CsvWriter(writer, CultureInfo.InvariantCulture)) { csv.Configuration.Delimiter = "|"; csv.WriteRecords(records); } log.Info("************** END **************"); log.Info(""); } catch (Exception ex) { log.Error(ex.Message); log.Error(ex.ToString()); } } // end main public class Foo { public int Id { get; set; } public string Name { get; set; } }
บรรทัดที่ 25 กำหนด delimiter เป็น Pipe (ค่า default จะเป็น comma)
ตัวอย่างไฟล์ที่ได้
Id|Name 1|one 2|two 3|three 4|four
3.อ่านไฟล์ CSV
static void Main(string[] args) { try { log.Info("*********************************"); log.Info("************* BEGIN *************"); log.Info(AppDomain.CurrentDomain.FriendlyName); string filename = string.Format("{0}file.csv", AppDomain.CurrentDomain.BaseDirectory); log.Info(string.Format("filename = '{0}'", filename)); using (var reader = new StreamReader(filename)) using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture)) { csv.Configuration.Delimiter = "|"; var records = csv.GetRecords<Foo>(); var foo = records.ToList(); int count = foo.Count(); log.Info(string.Format("count = '{0}' ", count)); for (int r = 0; r < count; r++) { log.Info(string.Format("Id = '{0}', Name = '{1}'", foo[r].Id, foo[r].Name)); } } log.Info("************** END **************"); log.Info(""); } catch (Exception ex) { log.Error(ex.Message); log.Error(ex.ToString()); } } // end main public class Foo { public int Id { get; set; } public string Name { get; set; } }
ตัวอย่าง output
count = '4' Id = '1', Name = 'one' Id = '2', Name = 'two' Id = '3', Name = 'three' Id = '4', Name = 'four'