Convert object to Csv File
Technology | C# |
---|---|
Editor of the Page | Latif Bahadır ALTUN |
Add NuGet package → CsvHelper
public class Project
{
public string CustomerName { get; set; }
public string Title { get; set; }
public DateTime Deadline { get; set; }
}
public class Program
{
static void Main(string[] args)
{
var data = new[]
{
new Project { CustomerName = "Big Corp", Title = "CRM updates", Deadline = DateTime.Today.AddDays(-2) },
new Project { CustomerName = "Imaginary Corp", Title = "Sales system", Deadline = DateTime.Today.AddDays(1) }
};
using (var mem = new MemoryStream())
using (var writer = new StreamWriter(mem))
using (var csvWriter = new CsvWriter(writer))
{
csvWriter.Configuration.Delimiter = ";";
csvWriter.Configuration.HasHeaderRecord = true;
csvWriter.Configuration.AutoMap<Project>();
csvWriter.WriteHeader<Project>();
csvWriter.WriteRecords(data);
writer.Flush();
var result = Encoding.UTF8.GetString(mem.ToArray());
Console.WriteLine(result);
}
}
}
OR
public class Project
{
public string CustomerName;
public string Title;
public DateTime Deadline;
}
public class Program
{
static void Main(string[] args)
{
var data = new[]
{
new Project { CustomerName = "Big Corp", Title = "CRM updates", Deadline = DateTime.Today.AddDays(-2) },
new Project { CustomerName = "Imaginary Corp", Title = "Sales system", Deadline = DateTime.Today.AddDays(1) }
};
using (var mem = new MemoryStream())
using (var writer = new StreamWriter(mem))
using (var csvWriter = new CsvWriter(writer))
{
csvWriter.Configuration.Delimiter = ";";
csvWriter.WriteField("Customer");
csvWriter.WriteField("Title");
csvWriter.WriteField("Deadline");
csvWriter.NextRecord();
foreach (var project in data)
{
csvWriter.WriteField(project.CustomerName);
csvWriter.WriteField(project.Title);
csvWriter.WriteField(project.Deadline);
csvWriter.NextRecord();
}
writer.Flush();
var result = Encoding.UTF8.GetString(mem.ToArray());
Console.WriteLine(result);
}
}
}